【发布时间】:2016-10-29 22:15:14
【问题描述】:
我有这些课程:
class Parent {
private int parentId;
private Child child;
}
class Child {
private int childId;
private Parent parent;
}
还有以下 XML 映射:
<hibernate-mapping>
<class name="com.package.Parent" table="PARENT">
<id name="id" type="int" column="parent_col_id"/>
<one-to-one name="child" class="com.package.Child">
</class>
</hibernate-mapping>
<hibernate-mapping>
<class name="com.package.Child" table="Child">
<id name="id" type="int" column="child_col_id"/>
<one-to-one name="Parent" class="com.package.Parent">
</class>
</hibernate-mapping>
MySQL 数据库看起来像这样:
ParentDB
parent_col_id INT(11) PK NN AI
ChildDB
child_col_id INT(11) PK NN AI
name VARCHAR(45) (none checked)
parent_id INT(11) (none checked)
现在让我们尝试更新它们!
Session hSession = sessionService.openSession();
Parent parent = hSession.get(Parent.class, parentId);
Child child = new Child();
child.setName = "CooCoo";
parent.setChild(child);
childRepo.insert(child, hSession);
hSession.close();
现在,问题是孩子被插入到数据库中,但外键没有!这让我的孩子们被抛弃了!请救救我的孩子:( 我做错了什么?
我尝试在父端移动外键列..仍然没有..Hibernate 怎么知道 parent_id 或 child_id 列是外键?
【问题讨论】:
标签: java xml hibernate one-to-one