java 集合 延迟加载_java-如何测试延迟加载的JPA集合是否已初始化?
您正在使用JPA2嗎?
PersistenceUnitUtil具有兩種可用于確定實體的加載狀態的方法。
例如 組織和用戶之間存在雙向的OneToMany / ManyToOne關系。
public void test() {
EntityManager em = entityManagerFactory.createEntityManager();
PersistenceUnitUtil unitUtil =
em.getEntityManagerFactory().getPersistenceUnitUtil();
em.getTransaction().begin();
Organization org = em.find(Organization.class, 1);
em.getTransaction().commit();
Assert.assertTrue(unitUtil.isLoaded(org));
// users is a field (Set of User) defined in Organization entity
Assert.assertFalse(unitUtil.isLoaded(org, "users"));
initializeCollection(org.getUsers());
Assert.assertTrue(unitUtil.isLoaded(org, "users"));
for(User user : org.getUsers()) {
Assert.assertTrue(unitUtil.isLoaded(user));
Assert.assertTrue(unitUtil.isLoaded(user.getOrganization()));
}
}
private void initializeCollection(Collection> collection) {
// works with Hibernate EM 3.6.1-SNAPSHOT
if(collection == null) {
return;
}
collection.iterator().hasNext();
}
總結
以上是生活随笔為你收集整理的java 集合 延迟加载_java-如何测试延迟加载的JPA集合是否已初始化?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tasklist命令参数应用详细图解
- 下一篇: matlab中的ezplot函数(Mat