gpt4 book ai didi

java - 使用 Criteria 进行连接

转载 作者:行者123 更新时间:2023-12-01 19:06:04 26 4
gpt4 key购买 nike

我对 Hibernate 非常陌生。我已经用谷歌搜索了两个小时,但我仍然无法弄清楚,如何在不使用 HQL 的情况下仅按标准进行 JOIN 。我有表 Clients(cID, name) 和 Visits(vID, vcID, date)。该关系是一对多的(一个客户端可以多次访问)。我也想在没有 setFetchMode 的情况下做到这一点。只是标准。我必须更改映射 xml 吗?

更新:这是我的映射 xml 的一部分:

 <class name="Client" table="Clients">
<id name="cID" column="cID"><generator class="native"/></id>
<property name="name" length="10" not-null="true"/>
</class>
<class name="Visit" table="Visits">
<id name="vID" column="vID"><generator class="native"/></id>
<property name="vcID" length="10" not-null="true"/>
<property name="date" length="25" not-null="true"/>
</class>

最佳答案

拥有一个类 Client,其列表属性“访问”映射到您的访问实体:

Criteria criteria = session.createCriteria(Client.class);
criteria.addCriteria("visits");

这将在您的客户表和访问表之间创建内部联接。

更新:

在这里您会找到一些很好的示例:http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/querycriteria.html#querycriteria-associations

映射示例

我很少使用 hibernate 映射 xml,但它应该读起来类似于:

   <class name="Client" table="Clients">
<id name="cID" column="cID"><generator class="native"/></id>
<property name="name" length="10" not-null="true"/>

<bag name="visits">
<key column="vcId"/>
<one-to-many class="Visit"/>
</bag>
</class>

告诉 Hibernate 有一个属性“visits”代表一对多关系。

关于java - 使用 Criteria 进行连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10077979/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com