hibernate注解一对多、多对一

无道圣教主 2012-08-19

注解多对一删除时只执行多的一方而一不会改变

添加时考虑一的一方主键是否存在

// cascade表示级联操作   
// CascadeType.MERGE级联更新  
// CascadeType.PERSIST级联刷新
// CascadeType.REFRESH级联保存  
// CascadeType.REMOVE级联删除 
//CascadeType.ALL:以上四种都是

//fetch有两种  FetchType.EAGER 懒加载
//            FetchType.LAZY  立即加载

// optional它的值为true表示该外键可以为null,
//           它的值为false表示该外键为not null 
// JoinColumn表示外键的列   
@ManyToOne(cascade= {CascadeType.PERSIST,CascadeType.MERGE},fetch=FetchType.EAGER,optional=false)
@JoinColumn(name="id")
private UserVo uv;

注解一对多删除时级联删除

添加时不考虑子项

// mappedBy="uv"  mappedBy指定的是不需要维护关系的一端    
//请检查orderItems这个属性是否使用了泛型,如:Set<Student>. 
//如果未使用泛型,请在注释中使用targetEntity指定元素的类型 
@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY,mappedBy="uv")
private Set<Content> u_c=new HashSet<Content>();

相关推荐