CascadeType 和 FetchType

FetchType的预设值:


@Basic FetchType.EARGE
@OneToOne FetchType.EARGE
@ManyToOne FetchType.EARGE
@OneToMany FetchType.LAZY
@ManyToMany FetchType.LAZY

提示:即使标注为 FetchType.LAZY,但它只作为建议,真实为FetchType.EAGER。

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

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

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

CascadeType.ALL包含所有; CascadeType.REFRESH没用过。 综上:大多数情况用CascadeType.MERGE就能达到级联跟新又不报错,用CascadeType.ALL时要斟酌下CascadeType.REMOVE 


你可能感兴趣的:(CascadeType 和 FetchType)