hibernate 基于外键的1-1

public class Wife {
 private Long id;
 private String name;
 private Husband husband;

 

public class Husband {
 private Long id;
 private String name;
 private Wife wife;

 

 

外键保存在husband的表中

 

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>

 <class name="hiber.Wife" table="wife">
  <id name="id" type="java.lang.Long">
   <column name="ID" scale="0" />
   <!-- The generator-class attribute of @hibernate.id is deprecated, use the @hibernate.generator tag instead -->
   <generator class="increment">
   </generator>
  </id>
  
  <property name="name" type="java.lang.String" >
   <column name="name" length="255"></column>
  </property>
  <one-to-one name="husband" property-ref="wife"></one-to-one>
 </class>
 
 <class name="hiber.Husband" table="Husband">
  <id name="id" type="java.lang.Long">
   <column name="ID" scale="0" />
   <!-- The generator-class attribute of @hibernate.id is deprecated, use the @hibernate.generator tag instead -->
   <generator class="increment">
   </generator>
  </id>
  
  <property name="name" type="java.lang.String" >
   <column name="name" length="255"></column>
  </property>
  <many-to-one name="wife" class="hiber.Wife" lazy="false" unique="true"  not-null="true" cascade="all" >
   <column name="wife_id" scale="0" />
  </many-to-one>
 </class>

</hibernate-mapping>

 

 

测试:

 Wife wife = new Wife();
  Husband husband = new Husband();
  wife.setName("wife777");
  husband.setName("husband777");
  husband.setWife(wife);
//  wife.setHusband(husband);
  sph.save(wife);
  sph.save(husband);

 

//进行访问
  Wife wife1 = sph.get(4l);
  System.out.println(wife1.getName()+":"+wife1.getHusband().getName());
  
  Husband husband1 = sph.getHusband(3l);
  System.out.println(husband1.getName()+":"+husband1.getWife().getName());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值