web-dev-qa-db-fra.com

Existe-t-il un framework d'entité équivalent en Java?

Tous ceux qui ont programmé avec C # savent qu'il y a le Entity Framework comme ORM (mappeur objet-relationnel) qui permet au programmeur d'interroger la base de données en utilisant uniquement du code C #.

Par exemple, si j'ai une base de données appelée Shop, et dans la base de données Shop j'ai Products table, je peux obtenir tous les produits de Productstable où leur le prix est inférieur à 2 dollars de la manière suivante:

ShopEntity _Db = new ShopEntity();
List<Product> products = _Db.Products.Where(p => p.Price < 2).ToList();

le code ci-dessus est équivalent à cette instruction SQL:

Select * From Products Where Price < 2

Je veux donc savoir s'il existe un tel cadre en java?

J'ai aussi vu quaere . Mais il interroge simplement les collections. Je souhaite interroger la base de données. Il existe un autre framework dans Java appelé Hibernate qui ne fournit pas de bonnes fonctionnalités pour interroger la base de données.

35

L'API ORM standard dans Java elle s'appelle JPA , et fait partie de la Java = Spécification EE. Une autre alternative serait d'utiliser Hibernate . Les deux fournissent leur propre langage de requête ( JPQL et HQL respectivement), mais aucun cadre de requête n'existe sous Java qui fournit une intégration directe au niveau du langage comme LINQ le fait pour C #.

30
Óscar López