我是一名Java应用程序员,正在使用JPA与数据库进行交互,我有两个重要问题:
在B中
- 我想在两个类之间建立双向链接,因为我需要从两个方向访问数据。我们以A和B两个类为例,它们之间的关系是A *-1 B(就像UML图中的一样,A有一个唯一的B,而B有多个A..)。
在A类中:
@ManyToOne
private B attribute;
在B中
@OneToMany
private List<A> list;
这样是否足以形成双向链接?还是必须使用mappedBy?
- 这就引出了我的第二个问题,如果在错误的一侧放置mappedBy会对性能产生影响甚至更糟吗?(数据未持久化)?例如,在基数为1-*的情况下,我们别无选择,mappedBy应该在OneToMany的一侧,在这种情况下:
B中
@OneToMany(mappedBy = "attribute")
private List<A> list;
考虑到我不会创建B类,而是创建一个列表并分配对象,我将不会在B侧做任何事情。我只需重复创建A类,并每次为其分配一个B对象,这样我可能会有几个A类具有相同的受影响的B对象,并且我希望B自动更新此链接及其A列表。