从1.5到2.1的春季启动迁移,休眠错误

我将Spring Boot版本从1.5迁移到2.1。现在开始使用休眠版本5.3.12与以前的5.0.12。现在,我看到了许多以前未捕获的休眠异常,例如:

在@OneToOne映射注释上,因为缺少级联类型:

ERROR: update or delete on table violates foreign key constraint

在@Test上,当我尝试通过以下方式获取记录时:repository.findById()

org.hibernate.LazyInitializationException: could not initialize proxy - no Session

在具有Hibernate 5.0.12的旧项目上不会出现这些错误,但是,当我切换到新的Spring Boot项目时,这些错误开始出现,唯一的变化因素是升级了Spring依赖项和Hibernate版本。

试图对此进行搜索,但找不到关于此休眠版本与以前版本相比有何变化的具体信息。有没有人遇到过类似的问题?因为我坚持这些,所以任何帮助或提示都将不胜感激。

xsfh12345 回答:从1.5到2.1的春季启动迁移,休眠错误

因此,您尝试将所有对象都序列化到Service层之外的原因。 (交易注释)

@Entity
class A {

   @OneToOne(fetch = FetchType.LAZY)
   private B b;
}

如果尝试从服务层序列化类A,则休眠会话已关闭,并且您有提到的异常

选中此一项 https://www.baeldung.com/hibernate-lazy-eager-loading

修复它的正确方法是组装DTO(数据传输对象)并将其从服务层返回到控制器。然后序列化DTO。

本文链接:https://www.f2er.com/3121916.html

大家都在问