【发布时间】:2012-11-08 20:10:00
【问题描述】:
这是我的查询之前我转换为 Spring Data JPA。请注意我过去是如何使用Hibernate.initialize() 手动获取小部件的消息的。
public Object findWidget(final Widget findMe) {
Widget widget = getJpaTemplate().execute(new JpaCallback<Widget>() {
public Widget doInJpa(EntityManager em) throws PersistenceException {
Query q = em.createQuery("SELECT h FROM " + entityClass.getName() + " h where h.widgetId = ? ");
q.setParameter(1, findMe.getId());
Widget found = (Widget)q.getSingleResult();
//Initialize lazy associations
if(found!= null){
Hibernate.initialize(widget.getMessages());
}
return found;
}
});
return widget;
}
这就是我的查询函数现在的样子。请注意,没有将 Hibernate.initialize() 放入的正文。
@Query("SELECT h FROM Widget h where h.widgetId = ?1 ")
public AccessPoint findWidget(String widgetId);
那么如何指定小部件的消息是主动获取而不是延迟获取呢?
【问题讨论】:
标签: spring hibernate jpa spring-data-jpa