2009-07-04 10 views
27

Dopo aver giocato con Linq (a SQL e Objects) e con Entity Framework di Microsoft recentemente, mi chiedevo cosa fossero gli equivalenti non.Net (in particolare Java)?Quali sono gli equivalenti Java a Linq ed Entity Framework

+2

Per gli oggetti Linq controllare questo: github.com/nicholas22/jpropel-light, esempio reale: nuova stringa [] {"james", "john", "john", "eddie"} .. .dove (startsWith ("j")) toList() distinta(); –

risposta

3

Java non ha un equivalente Linq. Tuttavia, Scala, un linguaggio funzionale che compila il codice byte Java, ha qualcosa che si chiude: un esteso per la sintassi del ciclo.

4

Esiste un progetto Java denominato JoSQL che fornisce funzionalità di query degli oggetti con una sintassi di tipo SQL.
Anche se non l'ho usato da solo, so che è utilizzato in alcune applicazioni pesanti.

+0

Questo sembra piuttosto interessante. Non è uno strumento di database, ma un modo per utilizzare SQL per operare su oggetti Java (come LINQ to Objects). –

2

Dai un'occhiata a JaQue.

+0

Link migliore: http://code.google.com/p/jaque/ –

2

Per lavori pesanti con database, SQLJ potrebbe essere un'opzione. Il rovescio della medaglia è che non è Java puro e richiede un pre-processore.

17

considerare l'utilizzo di Querydsl: http://www.querydsl.com

Esso supporta JPA/Hibernate, JDO, SQL e collezioni.

Querydsl è completamente sicuro per il tipo, supporta il completamento automatico in IDE e fornisce una sintassi di query comune sui più backend multipli.

Sono il manutentore di Querydsl e ho scritto un numero comparison to other frameworks qualche tempo fa.

'leggermente polarizzato, ma mostra la differente enfasi

  • tipizzato staticamente o meno
  • quali backend sono supportati
  • è l'interfaccia per cascata costruzione interrogazione o non

recente le strutture sperimentano anche con la sintassi di chiusura.

+1

Perché viene contrassegnato come spam? Per quanto posso vedere risponde alla domanda. – Yacoby

+0

@Yacoby, vedere http://meta.stackexchange.com/questions/50038/it-doesnt-matter-what-the-question-is-theres-only-one-answer (risolto da Timo in modo corretto, in la mia opinione) – Arjan

0

Non esiste un'alternativa esatta che sia universale come LINQ. Tuttavia, se stiamo parlando di LINQ to SQL, JPA è davvero un'alternativa quando lo si utilizza con un IDE che supporta la funzionalità "Inject language". Per esempio. IDEA eseguirà il completamento completo della query JPA all'interno di una stringa

2

Per LINQ (LINQ to Objects per essere più precisi) è possibile utilizzare Flussi a partire da Java 8

Questo non funziona per i database tuttavia, solo per gli oggetti interni come le collezioni ed elenchi

E 'davvero potente, ma non così completo come LINQ (a mio parere)

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

per quanto riguarda Entity Framework non c'è nulla di così potente che ho ancora trovato, ma non ho provato tutto il soluzioni forniscono d nelle altre risposte

Problemi correlati