2009-07-04 12 views
27

Po graniu z Linq (do SQL i obiektów), a także Entity Framework od Microsoftu, zastanawiałem się, co to są odpowiedniki non-.Net (konkretnie Java)?Jakie są równoważniki Java Linq i Entity Framework

+2

Dla Linqa do obiektów sprawdź ten: github.com/nicholas22/jpropel-light, prawdziwy przykład: new String [] {"james", "john", "john", "eddie"} gdzie (startsWith ("j")). toList(). distinct(); –

Odpowiedz

3

Java nie ma odpowiednika Linq. Jednak Scala, język funkcjonalny, który kompiluje się do kodu bajtowego Java, ma coś, co zamyka: rozszerzoną składnię pętli for.

4

Istnieje projekt Java o nazwie JoSQL, który zapewnia funkcje zapytań obiektowych o składnię podobną do SQL.
Chociaż sam nie używałem tego, wiem, że jest on używany w niektórych aplikacjach o dużej wadze.

+0

To wygląda całkiem interesująco. Nie jest to narzędzie do bazy danych, ale sposób użycia SQL do działania na obiektach Java (np. LINQ to Objects). –

2

Spójrz na JaQue.

+0

Lepsze łącze: http://code.google.com/p/jaque/ –

2

Dla ciężkiej pracy z bazą danych może być dostępna opcja SQLJ. Minusem jest to, że nie jest to czysta Java i wymaga pre-procesora.

17

Rozważ użycie Querydsl: http://www.querydsl.com

Obsługuje JPA/Hibernate, JDO, SQL i zbiorów.

Querydsl jest w pełni typu bezpiecznego, obsługuje autouzupełnianie w IDE i zapewnia wspólną składnię zapytań w wielu różnych backendach.

Jestem opiekunem Querydsl, a ja napisałem jakiś czas temu pod nazwą comparison to other frameworks.

Jest nieco stronniczy, ale pokazuje różne nacisk

  • statycznie wpisane lub nie
  • który backendy są obsługiwane
  • jest interfejsem do budowy zapytań kaskadowych lub nie

Nowsze eksperyment ramowy również ze składnią zamknięcia.

+1

Dlaczego jest oznaczane jako spam? O ile widzę odpowiedzi na pytanie. – Yacoby

+0

@Yacoby, zobacz http://meta.stackexchange.com/questions/50038/it-doesnt-matter-what-the-question-is-res-only-answerans (który został rozwiązany przez Timo ładnie, w moja opinia) – Arjan

0

Nie ma dokładnej alternatywy, która jest uniwersalna jak LINQ. Jeśli jednak mówimy o LINQ do SQL, to JPA jest naprawdę alternatywą, gdy używa się go z IDE, który obsługuje funkcję "Inject language". Na przykład. IDEA wykona pełną kwerendę zapytania JPA w ciągu znaków

2

Dla LINQ (LINQ to Objects być bardziej precyzyjne) można używać strumieni począwszy od Javy 8

ta nie działa dla baz jednak tylko dla obiektów wewnętrznych, takich jak kolekcje i listy

To jest naprawdę mocny, ale nie tak kompletne jak LINQ (moim zdaniem)

Sprawdź ten poradnik - http://www.oracle.com/technetwork/articles/java/ma14-java-se-8-streams-2177646.html

chodzi o Entity Framework nie ma nic aż tak silne, że mam jeszcze znaleźć, ale nie próbowałem wszystko rozwiązania zapewniają d w innych odpowiedziach