1.JPA中的CascadeType.ALL并不等于{CascadeType.PESIST,CascadeType.REMOVE,CascadeType.MERGE,CascadeType.REFRESH}
在Hibernate中调用session.save() or session.update()并不能触发{CascadeType.PESIST,CascadeType.REMOVE,CascadeType.MERGE,CascadeType.REFRESH}的级联操作,而能触发CascadeType.ALL的级联。如不希望用CascadeType.ALL,需要使用Hibernate自身对cascade的注解@Cascade(value=org.hibernate.annotations.CascadeType.SAVE_UPDATE)
2.共享主键的OneToOne方式不能通过cascade来自动生成标识符
,即使声明了@GenericGenerator(name="foreign_key",strategy="foreign",parameters={@Parameter(name="property",value="person")})
@Entity
public class Person implements Serializable {
@Id
@GeneratedValue(generator = "g_id")
public String getId() {
return id;
}
@OneToOne(cascade = { CascadeType.PERSIST ,CascadeType.ALL})
@JoinColumn(name = "profile_id")
@PrimaryKeyJoinColumn(name="id")
public Profile getProfile() {
return profile;
}
}
@Entity
public class Profile implements Serializable {
@Id
@GenericGenerator(name = "foreign_key", strategy = "foreign", parameters = { @Parameter(name = "property", value = "person") })
@GeneratedValue(generator = "foreign_key")
public String getId() {
return id;
}
@OneToOne(mappedBy = "profile")
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
}
3.delete-orphan只应用在OneToMany中,能级联删除Many集合中的子元素。
NOTE:JPA并不支持delete-orphan,但并不明白hibernate reference中为什么可以在OneToMany中添加属性orphanRemoval=true的属性。事实上,要用hibernate独有的注解@Cascade(value=@CascadeType.DELETE_ORPHAN)来达到此目的
分享到:
相关推荐
Hibernate cascade (级联).docHibernate_cascade(级联).doc
hibernate cascade 测试demo
\hibernate_配置cascade_及all-delete-orphan.doc
Hibernate中Cascade和inverse的区别,讲解的很详细
NULL 博文链接:https://dreamzhong.iteye.com/blog/1273157
Hibernate中cascade和inverse应用
Hibernate中cascade与inverse属性详解
于Hibernate中 cascade 与 inverse 的理解。 您买的Hibernate书是哪一本呢? 孙卫琴的精通Hibernate,还是 深入浅出Hibernate还是那本。。。 我是两本都买了,总体来说还可以,但是,有的地方讲的比较书面化,比如...
hibernate inverse和cascade的详细讲解,相当详细全面的对inverse和cascade区别和用法的讲解
hibernate 级联(cascade和inverse)一对多,Jar包,数据库建表语句都好了,只要修改一下,数据库配置文件,就可以使用了,使用junit进行测试。
详解Hibernate cascade级联属性的CascadeType的用法 cascade(级联) 级联在编写触发器时经常用到,触发器的作用是当 主控表信息改变时,用来保证其关联表中数据同步更新。若对触发器来修改或删除关联表相记录,必须...
深入理解hibernate many-to-one(多对一)及 cascade(级联).
Hibernate中Inverse和Cascade的区别.html
inverse Hibernate_级联关系说明_-_关于cascade和inverse的用法
hibernate集合映射inverse和cascade详解.txt
haarcascades\haarcascade_eye.xml haarcascades\haarcascade_eye_tree_eyeglasses.xml haarcascades\haarcascade_frontalface_alt.xml haarcascades\haarcascade_frontalface_alt2.xml haarcascades\haar...
Hibernate fetch lazy cascade inverse 关键字
Hibernate中cascade和inverse的相关