JPA 2 CriteriaQuery中的FetchMode

Joh*_*nes 12 jpa-2.0

我目前正处于从Hibernate切换到纯JPA 2的过程中(顺便说一下,这比我最初期望的要长得多).
到目前为止,我遇到的最大问题是找到一种方法来强制加载懒惰属性.
使用Hibernate,这是使用:criteria.setFetchMode("person", FetchMode.JOIN);.
有没有办法用JPA 2做到这一点?

Jim*_*ugh 15

试试这个:

CriteriaQuery<Person> c = cb.createQuery(Person.class);
Root<Person> person = c.from(Person.class);
person.fetch("address");
c.select(person);
Run Code Online (Sandbox Code Playgroud)

假设您的Person实体与Address实体之间存在一对一的关系.