2009-07-04 27 views
27

Después de haber jugado con Linq (para SQL y Objetos) así como Entity Framework de Microsoft recientemente, me preguntaba qué son los equivalentes no-net (específicamente Java)?¿Cuáles son los equivalentes de Java para Linq y Entity Framework

+2

Para objetos Linq ver este: github.com/nicholas22/jpropel-light, ejemplo real: new String [] {"james", "john", "john", "eddie"} .where (startsWith ("j")). toList(). distinct(); –

Respuesta

3

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

4

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

+0

Esto se ve bastante interesante. No es una herramienta de base de datos, sino una forma de usar SQL para operar en objetos Java (como LINQ to Objects). –

2

Eche un vistazo a JaQue.

+0

Mejor enlace: http://code.google.com/p/jaque/ –

2

Para trabajos pesados ​​en la base de datos, SQLJ podría ser una opción. La desventaja es que no es pura Java y requiere un preprocesador.

17

considerar el uso de Querydsl: http://www.querydsl.com

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

Querydsl es totalmente seguro, admite autocompletar en IDEs y proporciona una sintaxis de consulta común en los principales backends.

Soy el mantenedor de Querydsl, y escribí un comparison to other frameworks hace algún tiempo.

Se ligeramente sesgado, pero muestra el diferente énfasis

  • tipos estáticos o no
  • que backends son compatibles
  • es la interfaz para conexión en cascada construcción consulta o no

reciente los marcos experimentan también con sintaxis de cierre.

+1

¿Por qué se marca esto como correo no deseado? Por lo que puedo ver responde la pregunta. – Yacoby

+0

@Yacoby, vea http://meta.stackexchange.com/questions/50038/it-doesnt-matter-what-the-question-is-theres-only-one-reswer (que ha sido resuelto por Timo muy bien, en mi opinión) – Arjan

0

No existe una alternativa exacta que sea universal como LINQ. Sin embargo, si hablamos de LINQ to SQL, entonces JPA es realmente una alternativa cuando lo utiliza con un IDE que admite la función "Inject language". P.ej. IDEA realizará la finalización completa de la consulta JPA dentro de una cadena

2

Para LINQ (LINQ a objetos para ser más exactos) se puede utilizar a partir de corrientes de Java 8

Esto no funciona para bases de datos sin embargo, sólo para objetos internos como las colecciones y listas

Es realmente potente, pero no tan completa como LINQ (en mi opinión)

salida 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 he encontrado todavía, pero no lo he probado todo el soluciones proporcionan d en las otras respuestas

Cuestiones relacionadas