【问题标题】:OneToMany JPA annotationOneToMany JPA 注释
【发布时间】:2014-04-21 00:24:43
【问题描述】:

这是一个简单的问题,不会花太多时间。

假设:

Class A{ ... }

Class B{
  @OneToMany
  private A a;
}

意思是一个B可以有多个A还是很多A可以有一个B?

【问题讨论】:

    标签: java hibernate jakarta-ee jpa


    【解决方案1】:

    这意味着B可以有很多A,你的private A a应该用某种Collection来表示,它的@OneToMany装饰应该包括一个mappedBy属性指向Many side对应的字段/属性

    public class B {
        @OneToMany(mappedBy = "b");
        private Collection<A> as;
    
        @Id
        @Column(name = "B_ID")
        private Long id;
    }
    
    public class A {
        @ManyToOne
        @JoinColumn(name = "B_ID");
        private B b;
    }
    

    【讨论】:

    • 正如@Elvermg 所指出的,这双向关系的示例,两个实体彼此了解,但也存在单向关系,其中一方了解另一方,但反之亦然。他的回答显示了这个例子。 +1 他注意到这一点。
    【解决方案2】:

    peeskillet 提供的答案是对的,但它使用了双向关系的示例。也就是说,A 类知道 B 类,B 类知道 A 类。 您可以在非双向关系中使用它:

    public class B
    {
         @OneToMany
         private Collection<A> a;
    }
    
    
    public class A{}
    

    B 类知道 A 类,但 A 类不知道 B 类。

    也希望能有所帮助。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-27
      • 1970-01-01
      • 1970-01-01
      • 2011-12-07
      • 2017-05-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多