JPA标准教程

Joh*_*nak 68 java annotations jpa jpa-2.0

我一直试图找到一个JPA Criteria API教程但是没有取得多大成功.你知道任何初学者吗?我想在Java5/Maven应用程序中开始使用它来构建复杂的搜索查询.

Pas*_*ent 104

JPA 2.0文章中的动态类型安全查询在这个主题上非常好,实际上是迄今为止我发现的最好的在线查询,甚至比从Java EE 6教程创建查询第23章使用条件API更好(这包含一些错误).

  • @HDave Oracle与Criteria API的EE7链接已更改为[https://docs.oracle.com/javaee/7/tutorial/persistence-criteria.htm#GJITV](https://docs.oracle.com/javaee/ 7 /教程/持久性criteria.htm#GJITV) (2认同)

Mar*_*zak 14

常见查询的示例在这里

所有示例都采用以下形式:

CriteriaBuilder cb = em.getCriteriaBuilder();

// Query for a List of objects.
CriteriaQuery cq = cb.createQuery();
Root e = cq.from(Employee.class);
cq.where(cb.greaterThan(e.get("salary"), 100000));
Query query = em.createQuery(cq);
List<Employee> result = query.getResultList();
Run Code Online (Sandbox Code Playgroud)

如果您还在考虑其他技术,您应该认真考虑querydsl.与标准相比的主要优点包括更短的代码,良好的可读性以及与常规sql类似的语法.

这里的QueryDSL代码示例:

JPAQuery query = new JPAQuery(entityManager);
List<Person> persons = query.from(person)
  .where(
    person.firstName.eq("John")),        
  .list(person);
Run Code Online (Sandbox Code Playgroud)


Joh*_*nak 7

Pro JPA 2:掌握Java Persistence API http://books.google.com/books?id=j84hdeHH2PYC

这是我发现最有用的来源.