一_对_一Hibernate

//Hibernate -- 一对一(共享主键-双向关联)

//用户表
create table Userv(
usId varchar2(50) primary key,
usName varchar2(50) not null,
usSex varchar2(50) not null
);

//省份证表
create table Cardv(
caId varchar2(50) primary key,
caName varchar2(50) not null
);

//用户实体类
public class Userv implements Serializable
{
private String uId;
private String uName;
private String uSex;
private Cardv card;
//省略get(),set()
}

//身份证卡(共享身份证卡的ID)
public class Cardv implements Serializable
{
private String cId;
private String cName;
private Userv user;
//省略get(),set()
}

//用户的映射文件(Userv.hbm.xml)
<hibernate-mapping package="com.rt.xbliuc.pojos">
<class name="Userv" table="Userv">
<id name="uId" column="usId">
<generator class="assigned"/>
</id>
<property name="uName" column="usName"/>
<property name="uSex" column="usSex"/>
<one-to-one name="card" class="com.rt.xbliuc.pojos.Cardv" cascade="all"/>
</class>
</hibernate-mapping>

//身份证卡的映射文件(Cardv.hbm.xml)
<hibernate-mapping package="com.rt.xbliuc.pojos">
<class name="Cardv" table="Cardv">
<id name="cId" column="caId">
<generator class="foreign">
<param name="property">user</param>
</generator>
</id>
<property name="cName" column="caName"/>
<one-to-one name="user" class="com.rt.xbliuc.pojos.Userv" constrained="true"/>
</class>
</hibernate-mapping>

//测试类 Test.java
public class Test{
session = HConnection.getSession();
Transaction transaction = session.beginTransaction();
Userv user = new Userv("001", "lxb", "男");
Cardv card = new Cardv();
card.setcName("2");
card.setUser(user);
user.setCard(card);
session.save(user);
session.flush();
transaction.commit();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值