0 背景
项目中用到@OneToMany、@ManyToOne和@ManyToMany,以评论和回复为例(一个评论会有多条回复),按照映射策略,分为外键关联、表关联和默认关联。总结它们的使用方法如下:
1 外键关联
@OneToMany
@Entity
public class Comment{
private String id;
@OneToMany( mappedBy="comment", cascade = {CascadeType.REMOVE}) //mappedBy表示双向关系;cascade删除评论时级联删除回复
@OrderBy( value="CREATED_DATE asc" ) //按创建日期升序查询
private List<Reply> replyList = new ArrayList<>();
}
@ManyToOne
@Entity
public class Reply{
private String id;
@ManyToOne( fetch = FetchType.EAGER ) //关联取数据,eager表示立即加载; lazy表示懒加载,在对性能要求不高时使用
@JoinColumn( name="COMMENT_ID", referencedColumnName= "ID")
private Comment comment;
}
当fetch = FetchType.LAZY时,LAZY阻挡了除ID以外的所有访问,解决的办法有:
1) 通过ID从数据

本文详细介绍了在项目中使用@OneToMany、@ManyToOne和@ManyToMany注解时的三种ORM映射策略:外键关联、表关联及默认关联,并通过具体示例展示了不同策略的应用场景及其配置方法。
最低0.47元/天 解锁文章
2924

被折叠的 条评论
为什么被折叠?



