【发布时间】:2017-03-14 03:59:13
【问题描述】:
我有两张表,父母和孩子。我在这两个表中有数据作为父级:
PARENT_ID city
----------------
20 B
22 C
24 D
孩子:
CHILD_ID PARENT_CHILD_JOIN phone
------------------------------------------
2 20 1111
3 20 2222
4 22 3333
我在 child.hbm.xml 中将这两个表关联为:
<many-to-one name="myMtO" class="com.Parent" fetch="select">
<column name="PARENT_CHILD_JOIN" not-null="true" />
</many-to-one>
在 parent.hbm.xml 中:
<set name="mySet" table="child" cascade="save-update" inverse="true" lazy="true" fetch="select">
<key>
<column name="PARENT_CHILD_JOIN" not-null="true" />
</key>
<one-to-many class="com.Child" />
</set>
保存时我只保存parent , session.save(parent);
通过这样做,子表中的 PARENT_CHILD_JOIN 值会自动从父表的 PARENT_ID 列填充。
现在我想在这里获取数据:
select c.phone
from child c, parent p
where c.PARENT_CHILD_JOIN = p.PARENT_ID
但是它说的 PARENT_CHILD_JOIN 列在子节点中不存在。这是正确的。因为在保存时我没有明确设置它。
谁能告诉我如何检索这些一对多数据?
【问题讨论】:
标签: hibernate