【发布时间】:2011-05-31 17:39:17
【问题描述】:
如何获得惰性对象?
例如, 我有一个“客户”表和一个“请求”表,然后我使用 hibernate 和 JPA 构建了一个项目。
在客户表中有这样的代码
@OneToMany(cascade = CascadeType.ALL, fetch =FetchType.LAZY , mappedBy = "customer")
public Set<Request> getRequests() {
return this.requests;
}
所以,如果从客户对象调用getRequests() 方法,它会返回一个空对象,因为它是惰性的。
如何在不使用 EAGER 注释的情况下使惰性对象充满?
我发现我的问题取决于会话,因为它很接近。因此,在服务器端,我需要通过 JPA 保持打开会话。 我该怎么做?
这是我的 applicationContext.xml 的一部分,但它不起作用:
<bean class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean" id="entityManagerFactory">
<property name="persistenceUnitName" value="gestazPU"/>
</bean>
<bean class="org.springframework.orm.jpa.JpaTransactionManager" id="transactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
<bean id="ebOpenEMinView" class="org.springframework.orm.jpa.support.OpenEntityManagerInViewInterceptor">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
<tx:annotation-driven proxy-target-class="true" transaction-manager="transactionManager"/>
<bean id="TipoTicketDAO" class="it.stasbranger.gestaz.server.dao.impl.TipoTicketDAOImpl">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
【问题讨论】: