我通过Spring-MVC公开了REST服务。我有一个特定的方法,它通过HTTP调用正确映射和调用。 My Spring应用程序包含HibernateTransactionManager
,并且通过@Transactional
- 注释配置事务。我注释了这样的方法:
@Transactional(readOnly = true)
@Override
@RequestMapping(value = "/start", method = RequestMethod.GET)
@ResponseBody
public List<SomeObject> start(....)
每当我从我的应用程序上下文中绑定的org.hibernate.LazyInitializationException
中调用HTTP方法I org.springframework.http.converter.json.MappingJacksonHttpMessageConverter
时。 @Transactional
注释是否也适用于MessageConverter
?
答案 0 :(得分:2)
LazyInitializationException
表示您尝试在实体上读取未初始化数据时,您的休眠Session
已关闭。
您可以通过以下方式解决此问题:
Hibernate.initialize(entity)
答案 1 :(得分:2)
您的转换器类显然正在读取一个配置为在Hibernate配置中懒惰收集的字段。
两种可能的解决方案:
LazyInitializationException
的字段。 (例如,该字段可以是数据库中两个表之间关系的一部分。)