这种方法有什么大的优势:
@Entity
public class A {
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name = "ID_B")
private B b;
}
@Entity
public class B {
@OneToMany(mappedBy = "a", cascade = CascadeType.ALL)
private List<A> aList;
}
......而不是这个?...
@Entity
public class A {
@Column(name = "ID_B")
private Long idB;
}
@Entity
public class B {
//no reference to A
}
我认为第二个更适合封装(因为我在不同的项目中有A和B类,而第二个不需要引用拳头)。
答案 0 :(得分:1)
一个优点是使用正确的JPA关系允许您从数据库中获取A,并在A上使用简单的getter来获取B:myA.getB()
如果您使用long,则需要在需要获取某些B时再次手动查询数据库。
请注意,您没有义务双向声明关系。这样的事情完全有效:
@Entity
public class A {
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name = "ID_B")
private B b;
}
@Entity
public class B {
//no reference to A
}
当然,这完全取决于你想要达到的目标!