我正在研究Java应用程序并使用JPA与数据库进行交互,我有两个重要的问题:

  • 我想在两个类之间建立双向链接,因为我需要访问双方的数据。让我们以两个A和B为A * -1 B的情况为例(作为UML图,A具有唯一的B而B具有多个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对象时,我可能有几个具有相同受影响对象B的类A,我希望B自动更新此链接及其A的列表。

    最佳答案

    这样就足以建立双向链接了吗?还是必须使用
    被映射?

    对于Bi-directional关系,它是必需的。

    如果将mapedBy放在
    错误的一面,这只会影响性能甚至更糟吗?
    (数据不持久)?

    更糟-如果您看到异常,它将无法正常工作,但不会保持沉默。

    话虽如此,简单易懂。它带有@OneToMany

    This可能有助于您进一步了解这一点。

    10-07 16:12