query java linq entity-framework

java - query - jpa



¿Cuáles son los equivalentes de Java para Linq y Entity Framework? (8)

Después de haber jugado con Linq (para SQL y Objetos), así como con Entity Framework de Microsoft recientemente, me preguntaba qué equivalentes no son de la red (específicamente Java).


Considere utilizar Querydsl: http://www.querydsl.com

Es compatible con JPA / Hibernate, JDO, SQL y colecciones.

Querydsl es totalmente seguro para los tipos, admite autocompletar en IDE y proporciona una sintaxis de consulta común en los principales backends múltiples.

Soy el mantenedor de Querydsl, y escribí una comparación con otros marcos hace algún tiempo.

Es ligeramente parcial, pero muestra el énfasis diferente.

  • estáticamente escrito o no
  • cuales backends son soportados
  • Es la interfaz para la construcción de consultas en cascada o no.

Los marcos más nuevos experimentan también con la sintaxis de cierre.


Echa un vistazo a JaQue .


Existe un proyecto Java llamado JoSQL que proporciona capacidades de consulta de objetos con una sintaxis similar a SQL.
Aunque no lo he usado, sé que se usa en algunas aplicaciones de peso pesado.


Java no tiene un equivalente de Linq. Sin embargo, Scala, un lenguaje funcional que compila código de bytes de Java, tiene algo que se cierra: una sintaxis de bucle extendida para.



No hay una alternativa exacta que sea universal como lo es LINQ. Sin embargo, si estamos hablando de LINQ to SQL, entonces JPA es realmente una alternativa cuando lo usa con un IDE que admite la función "Inject language". Por ejemplo, IDEA completará a escala completa la consulta JPA dentro de una cadena


Para el trabajo pesado de la base de datos, SQLJ podría ser una opción. El inconveniente es que no es Java puro y requiere un preprocesador.


Para que LINQ (LINQ to Objects sea más preciso) puede usar Streams a partir de Java 8

Sin embargo, esto no funciona para bases de datos, solo para objetos internos como Colecciones y Listas.

Es realmente poderoso, pero no tan completo como LINQ (en mi opinión)

Consulta este tutorial: http://www.oracle.com/technetwork/articles/java/ma14-java-se-8-streams-2177646.html

En cuanto a Entity Framework, no hay nada tan poderoso que haya encontrado todavía, pero no he probado todas las soluciones proporcionadas en las otras respuestas.