首先主表中要有从表的属性,从表中有主表的属性:
主表的hbm.xml:
<class name="com.entity.user" table="USER">
<id name="id" type="java.lang.String">
<column name="ID" />
<generator class="com.generator.MyGenerator" />
</id>
<property name="name" type="java.lang.String">
<column name="NAME" />
</property>
<property name="pwd" type="java.lang.String">
<column name="PWD" />
</property>
<one-to-one name="card" class="com.entity.card" cascade="all-delete-orphan"></one-to-one>
</class>
从表的hbm.xml:
<class name="com.entity.card" table="CARD">
<id name="uid" type="java.lang.String">
<column name="UID" />
<generator class="foreign" >
<param name="property">user</param>
</generator>
</id>
<property name="cname" type="java.lang.String">
<column name="CNAME" />
</property>
<one-to-one name="user" class="com.entity.user"></one-to-one>
</class>
并且两张表的id要是同一个id,我的两张表都是uid,如果不是同个id,是无法两张表同时删除的
然后是调用的代码(增加):
@Test
public void OneToOne1() {
user u=new user();
u.setName("lm");
u.setPwd("afdsa");
card c1=new card();
c1.setCname("231");
u.setC(c1);
c1.setU(u);
session.save(u);
}
然后是调用的代码(删除):
@Test
public void OneToOne2() {
user u=new user();
u.setId("2ad9bdb8-adf1-11e8-83cc-54e1ad4df251");
card c=new card();
c.setUid("2ad9bdb8-adf1-11e8-83cc-54e1ad4df251");
u.setC(c);
c.setU(u);
session.delete(u);
}
以上就是全部内容了