在java中是否有任何实体框架等效?

Sey*_*avi 37 .net java

每个使用C#编程的人都知道有一个Entity FrameworkORM(对象关系映射器),它使程序员只使用C#代码查询数据库.

例如,如果我有一个名为的数据库Shop,并且在Shop数据库中我有Products表,我可以Products通过以下方式获得其价格低于2美元的表的所有产品:

ShopEntity _Db = new ShopEntity();
List<Product> products = _Db.Products.Where(p => p.Price < 2).ToList();
Run Code Online (Sandbox Code Playgroud)

上面的代码相当于这个SQL语句:

Select * From Products Where Price < 2
Run Code Online (Sandbox Code Playgroud)

所以我想知道在java中是否有类似的框架?

我也看到了quaere.但它只是查询集合.我想查询数据库.java中有另一个名为Hibernate的框架,它不能为查询数据库提供良好的功能.

Ósc*_*pez 32

Java中的标准ORM API称为JPA,是Java EE规范的一部分.另一种选择是使用Hibernate.两者都提供了自己的查询语言(分别是JPQLHQL),但Java下没有查询框架,它提供了LINQ为C#做的方式在语言级别的直接集成.

  • JPA实际上不是ORM框架,而是API规范.Hibernate实际上是ORM框架之一,它实现了JPA规范. (20认同)
  • @SeyedMortezaMousavi JPA 是 Hibernate 的一个子集,它可以在 EJB 容器(例如 JBoss)或外部运行。Hibernate 是一个功能更丰富的选项,也可以在 EJB 容器内部或外部运行。任何一种都是合适的 - 取决于您的实际需要。不过,设置 JPA 可能更容易,因为它是 JEE 标准的一部分。看看两者并选择更适合您需求的那个,由您决定哪个最好 - 两者都可以 (2认同)