model-view-controller - MessageConverter 中带有 @Transactional 注释的 LazyInitializationException

标签 model-view-controller hibernate spring

我有一个通过 Spring-MVC 公开的 REST 服务。我有一个特定的方法,它被正确映射并通过 HTTP 调用进行调用。我的 Spring 应用程序包含 HibernateTransactionManager ,并且事务是通过 @Transactional 注释配置的。我这样注释该方法:

@Transactional(readOnly = true)
@Override
@RequestMapping(value = "/start", method = RequestMethod.GET)
@ResponseBody
public List<SomeObject> start(....)

每当我调用 HTTP 方法时,我的 org.springframework.http.converter.json.MappingJacksonHttpMessageConverter 都会在我的应用程序中绑定(bind)一个 org.hibernate.LazyInitializationException语境。 @Transactional 注释对于 MessageConverter 也有效吗?

最佳答案

您的转换器类显然正在读取一个配置为在 Hibernate 配置中延迟收集的字段。

两种可能的解决方案:

  • 扩展您的交易方法以包含转换器方法。
  • 编辑您的 Hibernate 配置以立即获取导致 LazyInitializationException 的字段。 (例如,该字段可以是数据库中两个表之间关系的一部分。)

关于model-view-controller - MessageConverter 中带有 @Transactional 注释的 LazyInitializationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2810569/

相关文章:

java - 复合主键 Hibernate 和 Java 实现

java - 我可以在接口(interface)方法上使用@PostConstruct 吗?

java - @Profile ("String") 和 @ProfileName 有什么区别

php - Codeigniter - 404 页面未找到

java - jpa + hibernate + 独立

java - 如何使用 Hibernate 仅获取一列的值

java - 使用 spring @PathVariable 提取和解析参数

java - 表单 spring mvc 中的表单验证错误

model-view-controller - 一个 Extjs 应用程序调用另一个 Extjs 应用程序

java - 如何从 POJO 或 JavaBean 创建 Backbone 模型?