Hibernate:在一个属性上连接两个表
我在prod DB中有两个具有以下属性的表:Hibernate:在一个属性上连接两个表,hibernate,jpa,orm,Hibernate,Jpa,Orm,我在prod DB中有两个具有以下属性的表: Bills table : id, customer_id, total Project table : id, customer_id 而且customer\u id在任何表中都不是外键。有没有办法用hibernate标准连接这些表?尝试将DetachedCriteria与子查询一起使用。但却无法加入到表中 您必须更改映射,以便在您的账单中有一个额外的映射: @ManyToOne @JoinColumn(name = "customer_id"
Bills table : id, customer_id, total
Project table : id, customer_id
而且
customer\u id
在任何表中都不是外键。有没有办法用hibernate标准连接这些表?尝试将DetachedCriteria
与子查询一起使用。但却无法加入到表中 您必须更改映射,以便在您的账单中有一个额外的映射:
@ManyToOne
@JoinColumn(name = "customer_id", referencedColumnName = "customer_id")
private Project project;
然后,您可以使用标准方式加入标准
更新
如果可以使用HQL而不是条件。。然后可以使用旧的联接样式:
select b.name
from Bills b, Project p
where b.customer_id = p.customer_id
更新2
如果必须使用xml,请将您的指定为:
<many-to-one name="project" class="com.Project" ..>
<column name="customer_id" property-ref="customer_id"/>
</many-to-one>
感谢Maciej的回复,但不幸的是,我无法编辑映射,我们没有使用基于注释的映射。还有别的办法吗?我想我可以。"". 这是我在bills hibernate.xml中的内容,其中客户端是一个不同的表。如果可以使用hql而不是条件,我已经更新了帖子。这样做的好处是,您可以将其命名为NamedQuery,并加快整个查询时间。这不是真的,但可以让DetachedCriteria正常工作。谢谢你的关心