在将Hibernate更新为6.6.5.最新情况下,从6.5.3。最终带有Spring Boot启动器父母3.4.2我会得到以下例外。 org.hibernate.TransientObjectException:持久的实例参考u ...

问题描述 投票:0回答:0
篮子有一个用户和多个商品。这是一个抽象实现:

@Entity data class Basket ( @OneToOne var user: User? = null, @ManyToOne var goods: Goods? = null, ... )
@Entity
data class User (
   @OneToOne(mappedBy = USER, cascade = [CascadeType.REMOVE])
   var basket: Basket? = null,
   ...
)

@Entity data class Goods ( @OneToMany(mappedBy = "Goods", cascade = [CascadeType.ALL]) var basket: MutableList<Basket> = mutableListOf(), ... )
basketRepository.deleteById(id)
还请参见此Hibernate线程
https://discourse.hibernate.org/t/instance-save-save-transient-before/10293
因此,我试图将CascadeType设置为持久并合并。使用EntityManager merge()函数,将用户/篮设置为null。
    

通过删除用户和商品实体中的篮子关系来解决。删除实体时是分离的。

spring-boot hibernate
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.