【问题标题】:hibernate jpa join two table with another tablehibernate jpa将两个表与另一个表连接起来
【发布时间】:2012-10-09 15:07:05
【问题描述】:

我有两张桌子 A 和 B

表 A:

ID_A

名字

表 B

ID_B

名字

我通过带有主键的第三个表 C 表加入了这两个表

表 C

ID_C

ID_A

ID_B

我想知道 jpa 映射中的这种关系以检索对象 A 中的对象 B 的列表

谢谢你,

【问题讨论】:

    标签: jpa-2.0 hibernate-mapping hibernate-onetomany


    【解决方案1】:

    A 类有 C 对象的列表。

    class A{
    
    @Id
    private Long Id;
    
    @Column(name = "name_a", length = 5)
    private Strin name_a;
    
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "a", fetch = FetchType.LAZY)
    private List<C> cList;
    }
    class B{
    
    @Id
    private Long Id;
    
    @Column(name = "name_b", length = 5)
    private String name_b;
    
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "b", fetch = FetchType.LAZY)
    private List<C> cList;
    
    }
    

    这是连接表。C类有A对象和B对象。

    class C{
    
      @Id
      private Long id;
    
      @JoinColumn(name = "id_a", referencedColumnName = "id", nullable = false)
      @ManyToOne(optional = false, fetch = FetchType.LAZY)
      private A a;
    
    
      @JoinColumn(name = "id_b", referencedColumnName = "id", nullable = false)
      @ManyToOne(optional = false, fetch = FetchType.LAZY)
       private B b;
    
    
    }
    

    【讨论】:

    • 感谢您的回复,这是正确的,但我希望我们拥有像私人列表 bList 之类的东西;在对象 A 内部,这可能吗,要映射这个吗?
    • 由于A和B之间的关系,你想要是不可能的。我认为没有必要
    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 2016-06-16
      • 1970-01-01
      • 2012-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-26
      相关资源
      最近更新 更多