我有以下课程
@Entity
public class Auditable {
@Id
long id;
@ManyToOne(optional=false, cascade=CascadeType.PERSIST)
Audit a;
......
}
@Entity
public class Actor extends Auditable {
....
}
@Entity
public class AnotherEntity extends Auditable {
.....
}
@Entity
public class Audit {
@Id
long id;
@ManyToOne(optional=false, cascade=CascadeType.PERSIST)
Actor b;
.....
}
数据库中的每条记录都引用了“审核”对象。审计对象具有对创建审计的参与者的引用。由于可以创建/修改演员,因此它也可以引用审计。
因此是循环依赖。
Hibernate不喜欢这个
Hibernate失败并出现以下错误:
尝试保存与未保存的瞬态实体具有非可空关联的一个或多个实体。在保存这些依赖实体之前,必须将未保存的瞬态实体保存在操作中。
建议?
答案 0 :(得分:0)
在持久化两个对象之前,手动设置ID。