当我删除一个子对象时,我的父对象是否也会在hibernate中被删除?
我正在使用Hibernate,当我删除我的子对象时,我的父对象也被删除了,请检查下面的代码当我删除一个子对象时,我的父对象是否也会在hibernate中被删除?,hibernate,Hibernate,我正在使用Hibernate,当我删除我的子对象时,我的父对象也被删除了,请检查下面的代码 @Entity public class User { @Id @GeneratedValue @Column(name = "FLD_USER_ID") private Long userId; @OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER) private java.util.List<UserProfileEx
@Entity
public class User
{
@Id
@GeneratedValue
@Column(name = "FLD_USER_ID")
private Long userId;
@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER)
private java.util.List<UserProfileEx> userProfileEx = new ArrayList<UserProfileEx();
}
@Entity
@Table(name="TBL_STD_USERPROFILEEX")
public class UserProfileEx implements Serializable {
@Id
@GeneratedValue
@Column(name="FLD_FIELD_ID")
private Long userProfileExId;
@ManyToOne
private UserProfile userProfile;
}
MyLogic
I have UserProfileEx object here with id=1
Now I am calling my delete method like this
delete(UserProfileExObj,1);
它从childtable中删除,同时删除父表对象以及任何一个help me.级联属性设置为
cascade=CascadeType。所有
表示操作(保存、删除、更新、逐出、锁定、复制、合并、持久化)将级联到映射
CascadeType=ALL
意味着,如果您执行一个操作,它们都是操作(保存、删除、更新、逐出、锁定、复制、合并、持久化),在这里,它将级联到所有关系。如果删除对象,其他对象也将被删除
如果不需要任何级联操作,则设置id Nonecascade=CascadeType.None
,这样其他对象就不会受到影响
您应该选择所需的适当级联类型
更多级联类型请参见文档
另请参见
您好,谢谢您的重播。但是我在父表中添加了cascade=CascadeType.ALL。您能告诉我它是如何工作的吗?请参阅我的编辑。我建议您设置
cascade=CascadeType。现在没有。但是,您应该根据需要选择适当的级联属性。@user2963481如果可以,请不要忘记接受答案。
I have UserProfileEx object here with id=1
Now I am calling my delete method like this
delete(UserProfileExObj,1);