【发布时间】:2021-03-16 13:24:17
【问题描述】:
我是新手,我有一个关于 JPA 标准查询的任务。 我试图理解这段代码的确切含义。
EntityManager em = ...
CriteriaBuilder qb = em.getCriteriaBuilder();
CriteriaQuery<Person> c = qb.createQuery(Person.class);
Root<Person> p = c.from(Person.class);
Predicate condition = qb.gt(p.get(Person_.age), 20);
c.where(condition);
TypedQuery<Person> q = em.createQuery(c);
List<Person> result = q.getResultList();
您能否详细解释每一行以及为什么要遵循这些步骤? 我在网上找到了很多资源,但我仍然无法获得完整的数字......
例如:createQuery(Person.class) 是什么意思?或者 TypedQuery 和 CriteriaQuery 之间的真正区别?
我从 Martin Fowler 的博客中阅读了查询对象的含义: “查询对象是一个解释器 [Gang of Four],即可以将自身形成 SQL 查询的对象结构。您可以通过引用类和字段而不是表和列来创建此查询。”
但是它的写法我还是不太明白...
谢谢
【问题讨论】:
标签: hibernate jpa criteria-api criteriaquery