升级hibernate/JPA/Sping Boot 版本到3.1.1时,无法将class org.hibernate. mapping.BasicValue强制转换为class org.hibernate.mapping.托内

hwazgwia  于 2023-08-06  发布在  其他
关注(0)|答案(1)|浏览(131)

原因:java.lang.ClassCastException:无法将org.hibernate.mapping.BasicValue类强制转换为org.hibernate.mapping.托内类(org.hibernate.mapping.BasicValue和org.hibernate.mapping.ToOne在加载器“app”的未命名模块中)
我试图将spring-boot版本升级到3.1.1并看到此问题

wfsdck30

wfsdck301#

在从SpringBoot 2.7升级到3.1的过程中也遇到了这个问题,原来是一对多关系声明(托内)

@OneToMany(fetch = FetchType.LAZY, mappedBy = "fieldInChildEntity")
    var children: MutableSet<ChildEntity> = mutableSetOf()

字符串
并且该列的类型不是相应的ParentEntity,而是String(BasicValue)

@Column(name = "COLUMN_NAME")
    val fieldInChildEntity: String?,


应该是:

@ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "FK", referencedColumnName = "PARENT_PK")
    var parent: ParentEntity?,

相关问题