JPA 标准教程 [关闭]

Posted

技术标签:

【中文标题】JPA 标准教程 [关闭]【英文标题】:JPA Criteria Tutorial [closed] 【发布时间】:2011-04-29 03:57:45 【问题描述】:

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

【问题讨论】:

离题和有用性之间的相关系数== 1.0 【参考方案1】:

常见查询示例为here

所有示例都采用这种形式:

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();

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

QueryDSL 代码示例:

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

【讨论】:

您的第一个示例抛出“没有显式选择并且无法确定隐式选择”异常 .where( 此处打开的括号没有关闭。【参考方案2】:

Dynamic, typesafe queries in JPA 2.0 文章是关于这个主题的一篇非常好的文章,实际上是迄今为止我在 在线 找到的最好的文章,甚至比 Java EE 6 教程中的 Chapter 23 Using the Criteria API to Create Queries 还要好(包含一些错误)。

【讨论】:

@HDave Oracle 的 EE7 到 Criteria API 的链接已更改为 https://docs.oracle.com/javaee/7/tutorial/persistence-criteria.htm#GJITV【参考方案3】:

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

这是我觉得最有用的来源。

【讨论】:

【参考方案4】:

http://www.altuure.com/2010/09/23/jpa-criteria-api-by-samples-part-i/

【讨论】:

以上是关于JPA 标准教程 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

JPA 和 DAO - 标准方法是啥?

标准 Jpa 选择外国实体

JPA 查询语言标准生成器

JPA - 标准 API 和 EmbeddedId

Spring 会支持 CDI 吗? [关闭]

JPA命名查询与标准API?