Hibernate:在属性上加入2个表

时间:2017-02-11 18:46:08

标签: hibernate jpa orm

我在prod DB中有2个具有以下属性的表:

Bills table : id, customer_id, total 
Project table : id, customer_id

customer_id不是任何表中的外键。有没有办法用hibernate标准连接这些表?使用DetachedCriteria标准尝试Subqueries。但是无法加入这些桌子!

1 个答案:

答案 0 :(得分:1)

您必须更改地图,以便在Bills中添加其他地图:

@ManyToOne
@JoinColumn(name = "customer_id", referencedColumnName = "customer_id")
private Project project;

然后您可以使用加入标准的标准方式。

<强>更新

如果您可以使用HQL而不是Criteria ..那么您可以使用旧的连接方式:

select b.name 
from Bills b, Project p 
where b.customer_id = p.customer_id

更新2

如果必须使用xml,请指定as:

<many-to-one name="project" class="com.Project" ..>
   <column name="customer_id" property-ref="customer_id"/>
</many-to-one>