hibernate的1对1关系

首先主表中要有从表的属性,从表中有主表的属性:

主表的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);
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值