web-dev-qa-db-fra.com

Quels sont les équivalents Java de Linq et Entity Framework?

Ayant récemment joué avec Linq (SQL et Objets) ainsi qu'avec Entity Framework de Microsoft, je me demandais quels sont les équivalents non.Net (en particulier Java)?

30
Colin Desmond

Pensez à utiliser Querydsl: http://www.querydsl.com

Il supporte JPA/Hibernate, JDO, SQL et Collections.

Querydsl est totalement sûr pour le type, prend en charge la saisie semi-automatique dans les IDE et fournit une syntaxe de requête commune sur les principaux backends.

Je suis le mainteneur de Querydsl, et j’ai écrit une comparaison à d’autres frameworks il ya quelque temps.

Il est légèrement biaisé, mais montre l'accent différent

  • statiquement tapé ou non
  • quels backends sont supportés
  • est l'interface pour la construction de requêtes en cascade ou non

Les nouveaux cadres expérimentent également la syntaxe de fermeture.

19
Timo Westkämper

Il existe un projet Java appelé JoSQL qui fournit des fonctionnalités de requête d’objet avec une syntaxe semblable à celle de SQL.
Bien que je ne l'utilise pas moi-même, je sais qu'il est utilisé dans certaines applications de poids lourd.

4
codethulhu

Java n'a pas d'équivalent Linq. Cependant, Scala, un langage fonctionnel qui compile en code octet Java, a quelque chose de fermé: une syntaxe de boucle for étendue.

3
Landon Kuhn

Pour que LINQ (LINQ to Objects soit plus précis), vous pouvez utiliser des flux à partir de Java 8.

Cela ne fonctionne pas pour les bases de données, mais uniquement pour les objets internes tels que Collections et Listes. 

C'est vraiment puissant, mais pas aussi complet que LINQ (à mon avis)

Découvrez ce tutoriel - http://www.Oracle.com/technetwork/articles/Java/ma14-Java-se-8-streams-2177646.html

En ce qui concerne Entity Framework, rien n’a été aussi puissant que ce que j’ai encore trouvé, mais je n’ai pas essayé toutes les solutions fournies dans les autres réponses

2
Safin Ahmed

Regardez JaQue .

2
Apocalisp

Pour les travaux exigeant une base de données importante, SQLJ peut être une option. L'inconvénient est que ce n'est pas du pur Java et qu'il nécessite un pré-processeur.

2
ykaganovich

Vous ne trouverez un équivalent de LINQ que si vous utilisez le javacc pour créer votre propre équivalent.

Jusqu'au jour où quelqu'un trouvera un moyen viable de le faire, il existe de bonnes solutions de rechange, telles que

1
Lukas Eder

Il n’existe pas d’alternative exacte aussi universelle que LINQ. Cependant, si nous parlons de LINQ to SQL, JPA est vraiment une alternative lorsque vous l’utilisez avec un IDE qui prend en charge la fonctionnalité "Inject language". Par exemple. IDEA complétera complètement la requête JPA dans une chaîne

0
i.petruk