Java 休眠JPA值删除OneToMany关系
我有两张桌子,有一对一的关系 当我将AlarmnotifyEmailEntity实例添加到alarmnotifyEmailEntityList对象中并更新AlarmnotifyEmailConfEntity实例时,该值将正确保存到数据库中 Bu在删除alarmnotifyEmailEntityList的一项时,我无法执行相同的操作。 我确信该值已从alarmnotifyEmailEntityList中删除,但它不会将此更改反映到数据库中Java 休眠JPA值删除OneToMany关系,java,hibernate,jpa,Java,Hibernate,Jpa,我有两张桌子,有一对一的关系 当我将AlarmnotifyEmailEntity实例添加到alarmnotifyEmailEntityList对象中并更新AlarmnotifyEmailConfEntity实例时,该值将正确保存到数据库中 Bu在删除alarmnotifyEmailEntityList的一项时,我无法执行相同的操作。 我确信该值已从alarmnotifyEmailEntityList中删除,但它不会将此更改反映到数据库中 @Entity(name ="alarmnotif
@Entity(name ="alarmnotify_email_conf")
@Table(name = "alarmnotify_email_conf")
public class AlarmnotifyEmailConfEntity implements Serializable {
@OneToMany(mappedBy = "alarmnotifyEmailConfRef",cascade=CascadeType.ALL)
private List<AlarmnotifyEmailEntity> alarmnotifyEmailEntityList;
}//end of Class
@Entity (name ="alarmnotify_email")
@Table(name = "alarmnotify_email")
public class AlarmnotifyEmailEntity implements Serializable {
@JoinColumn(name = "alarmnotify_email_conf_ref", referencedColumnName = "id")
@ManyToOne
private AlarmnotifyEmailConfEntity alarmnotifyEmailConfRef;
}end of Class
}根据我的经验,级联仅适用于相同的操作。如果我们保存父项,则子项也将保存相同的案例,并进行更新。但我认为,当您想要删除其中一个子项时,我们必须使用实体管理器显式删除,并且不能仅合并父项,expect将级联删除到子项。我在中找到了答案。 因此,添加orphanRemoving=true解决了问题 @实体(name=“alarmnotify\u email\u conf”) @表(name=“alarmnotify\u email\u conf”) 公共类AlarmnotifyEmailConfEntity实现可序列化{ @一家公司(mappedBy)= “alarmnotifyEmailConfRef”,cascade=CascadeType.ALL,孤立删除=true) 私有列表alarmnotifyEmailEntityList
}//end of Class
您是否尝试将cascade=CascadeType.ALL添加到关系的@manyTone一侧?如果@manyTone具有CascadeType.ALL,则会触发删除AlarmnotifyEmailConfEntity实例。但我不希望执行此操作。
}//end of Class