java LazyLoadingException在我尝试从多通关系获取对象时出现
这是我的实体:
@Entity
public class Answer implements Serializable {
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="user")
private CoreUsers user;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="person")
private Person person;
}
服务:
@Transactional
public class AnswerService {
@Autowired
private AnswerRepository repository;
public List<Answer> getAnswers(Long id) {
return repository.findByMessagesidOrderBySenddateDesc(id);
}
}
回购协议:
@Repository
public interface AnswerRepository extends JpaRepository<Answer, Long> {
List<Answer> findByMessagesIdOrderBySenddateDesc(Long id);
}
应用程序上下文。xml
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="jpaPropertyMap">
<map>
<entry key="hibernate.cache.provider_class" value="org.hibernate.cache.EhCacheProvider"/>
<entry key="hibernate.enable_lazy_load_no_trans" value="true" />
<entry key="hibernate.current_session_context_class" value="thread" />
<entry key="org.hibernate.cacheable" value="false" />
</map>
</property>
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="databasePlatform" value="org.hibernate.dialect.PostgreSQLDialect" />
<property name="showSql" value="false" />
<property name="showSql" value="true" />
<property name="generateDdl" value="false" />
</bean>
</property>
<property name="persistenceUnitName" value="cccPersistenceUnit" />
</bean>
<bean class="org.springframework.orm.jpa.JpaTransactionManager" id="transactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
<property name="jpaDialect">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect"/>
</property>
</bean>
我通过我的服务类在JSFbean中加载一个答案(列表)集合。当我尝试从集合中获取Person对象时(一切正常),但当我尝试从集合中获取User对象时,hibernate抛出LazyInitializationException。我做错了什么
hibernate试图从hibernate会话中获取用户对象,对吗
请随时询问任何其他信息
谢谢你的帮助
在创建线程之前,我在谷歌上搜索了很多次
UPD强> 我将实体设置为急切加载,并注意到我的应用程序试图从用户表加载未列出的ID。这就是问题所在:)
# 1 楼答案
您可以使用以下工具获取完整的对象树: