我一直在努力寻找JPA Criteria API教程但是没有取得多大成功。你知道任何初学者吗?我想在Java5 / Maven应用程序中开始使用它来构建复杂的搜索查询。
答案 0 :(得分:102)
关于此主题的Dynamic, typesafe queries in JPA 2.0文章非常好,实际上是迄今为止我发现的最好的在线,甚至比Java中的Chapter 23 Using the Criteria API to Create Queries更好EE 6教程(包含一些错误)。
答案 1 :(得分:14)
常见查询的示例是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);
答案 2 :(得分:7)
Pro JPA 2:掌握Java Persistence API http://books.google.com/books?id=j84hdeHH2PYC
这是我发现最有用的来源。
答案 3 :(得分:1)