hibernate jpa将两个表与另一个表连接起来

Posted

技术标签:

【中文标题】hibernate jpa将两个表与另一个表连接起来【英文标题】:hibernate jpa join two table with another table 【发布时间】: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 的列表

谢谢你,

【问题讨论】:

【参考方案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】:

我在这里找到了一个很好的例子http://viralpatel.net/blogs/hibernate-many-to-many-annotation-mapping-tutorial/

【讨论】:

以上是关于hibernate jpa将两个表与另一个表连接起来的主要内容,如果未能解决你的问题,请参考以下文章

如何将一个表与另一个表连接,然后计算非空列并将它们按另外两个字段分组?

如何将一个表与另一个表中的一系列值连接起来?

在连接三个表时创建的视图,一个表与另一个表相似

Oracle SQL 将日期维度表与另一个关于日期值的表连接起来

JPA+Hibernate - 实体关系中的循环 - 级联策略

如何在单个表上执行 GROUP BY 并将该表与另一个表连接?