`
xpopi
  • 浏览: 61916 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

hibernate注解的CascadeType属性(转)

 
阅读更多

 CascadeType.MERGE级联更新:若items属性修改了那么order对象保存时同时修改items里的对象。对应EntityManager的merge方法 

  
   CascadeType.PERSIST级联刷新:获取order对象里也同时也重新获取最新的items时的对象。对应EntityManager的refresh(object)方法有效。即会重新查询数据库里的最新数据   
   

  CascadeType.REFRESH级联保存:对order对象保存时也对items里的对象也会保存。对应EntityManager的presist方法   
   

  CascadeType.REMOVE级联删除:对order对象删除也对items里的对象也会删除。对应EntityManager的remove方法   

CascadeType.PERSIST只有A类新增时,会级联B对象新增。若B对象在数据库存(跟新)在则抛异常(让B变为持久态)

CascadeType.MERGE指A类新增或者变化,会级联B对象(新增或者变化)

CascadeType.REMOVE只有A类删除时,会级联删除B类;

CascadeType.ALL包含所有;

CascadeType.REFRESH没用过。

综上:大多数情况用CascadeType.MERGE就能达到级联跟新又不报错,用CascadeType.ALL时要斟酌下CascadeType.REMOVE

@Fetch:

定义了加载关联关系的获取策略. FetchMode 可以是

SELECT (在需要加载关联的时候触发select操作), SUBSELECT(只对集合有效,使用了子查询策略,详情参考Hibernate参考文档)

JOIN (在加载主实体(owner entity)的时候使用SQL JOIN来加载关联关系).

JOIN 将覆写任何延迟属性 (通过 JOIN策略加载的关联将不再具有延迟性).

分享到:
评论

相关推荐

    hibernate的_CascadeType属性说明

    hibernate的_CascadeType属性说明

    Hibernate注解

    * @Id —— 注解声明了该实体bean的标识属性(对应表中的主键)。 * @Table —— 注解声明了该实体bean映射指定的表(table),目录(catalog)和schema的名字 * @Column —— 注解声明了属性到列的映射。该注解有...

    详解Hibernate cascade级联属性的CascadeType的用法

    详解Hibernate cascade级联属性的CascadeType的用法 cascade(级联) 级联在编写触发器时经常用到,触发器的作用是当 主控表信息改变时,用来保证其关联表中数据同步更新。若对触发器来修改或删除关联表相记录,必须...

    Hibernate注释大全收藏

    • 将组件类注解为 @Embeddable, 并将组件的属性注解为 @Id • 将组件的属性注解为 @EmbeddedId • 将类注解为 @IdClass,并将该实体中所有主键的属性都注解为 @Id @Entity @IdClass(FootballerPk.class) public ...

    Hibernate_Annotation关联映射

    使用@OneToOne注解建立实体Bean之间的一对一关联。一对一关联有三种情况:(1).关联的实体都共享同样的主键,(2).其中一个实体通过外键关联到另一个实体的主键(注意要模拟一对一关联必须在外键列上添加唯一约束),(3)...

    javax.persistence.jar

    javax.persistence.CascadeType.class javax.persistence.CollectionTable.class javax.persistence.Column.class javax.persistence.ColumnResult.class javax.persistence.criteria.AbstractQuery.class javax....

    CascadeView级联组件实现思路详解(分离思想和单链表)

    本文介绍自己最近做省市级联的类似的级联功能的实现思路,为了尽...CascadeType. PERSIST 级联持久化 ( 保存 ) 操作 CascadeType. MERGE 级联更新 ( 合并 ) 操作 CascadeType. REFRESH 级联刷新操作,只会查询获取操作

    EJB3.0开发之多对多和一对一

    在前面的例子中,我们演示了一对多和多对一的例子,在本章将演示多对多和一对一的关系。... 如: @ManyToMany(cascade = {CascadeType.CREATE, CascadeType.MERGE}, fetch = FetchType.EAGER, isInverse

    JPA例子(里面有一对一,一对多的例子)

    @ManyToOne(cascade = {CascadeType.ALL}, fetch = FetchType.LAZY) @JoinColumn(name = "personid", unique = false, nullable = true, insertable = true, updatable = true) public Person getPerson() { ...

    Java_EE_Udemy39:级联和传播持久性和删除操作

    @OneToOne( cascade = { CascadeType.PERSIST, CascadeType.REMOVE }) @JoinColumn(name= "airplane_fk") private Airplane airplaneDetail; 现在,这可以使排期列表自动更新。 这也意味着,如果将飞行员添加到...

Global site tag (gtag.js) - Google Analytics