标签:style blog class code java color
1、One To One 单相
背景:
古代一个老婆 只能关联一个老公
husband.java
| 
       1 
      2 
      3 
      4 
      5 
      6 
      7 
      8 
      9 
      10 
      11 
      12 
      13 
      14 
      15 
      16 
      17 
      18 
      19 
      20  | 
    
      package 
com.rhythmk.model;public class husband {         public 
Integer getHusbandId() {        return 
husbandId;    }    public 
void setHusbandId(Integer husbandId) {        this.husbandId = husbandId;    }    public 
String getName() {        return 
Name;    }    public 
void setName(String name) {        Name = name;    }    private 
Integer husbandId;    private 
String Name;} | 
hasband.hbm.xml
<?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 package="com.rhythmk.model"> <class name="husband" table="t_husband"> <id name="husbandId" type="int"> <column name="husbandId" /> <generator class="native" /> </id> <property name="Name" type="string"> </property> </class> </hibernate-mapping>
wife.java
| 
       1 
      2 
      3 
      4 
      5 
      6 
      7 
      8 
      9 
      10 
      11 
      12 
      13 
      14 
      15 
      16 
      17 
      18 
      19 
      20 
      21 
      22 
      23 
      24 
      25 
      26 
      27 
      28 
      29 
      30 
      31 
      32 
      33 
      34 
      35 
      36 
      37 
      38 
      39  | 
    
      package 
com.rhythmk.model;public class wife {    private 
Integer wifeId;    private 
String name;    public 
Integer getWifeId() {        return 
wifeId;    }    public 
void setWifeId(Integer wifeId) {        this.wifeId = wifeId;    }    public 
String getName() {        return 
name;    }    public 
void setName(String name) {        this.name = name;    }         public 
husband getHb() {        return 
hb;    }    public 
void setHb(husband hb) {        this.hb = hb;    }    private 
husband  hb;    @Override    public 
String toString() {        return 
"wife [wifeId=" + wifeId + ", name=" 
+ name + ", hb=" 
+ hb + "]";    }     } | 
wife.hbm.xml
<?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 package="com.rhythmk.model"> <class name="wife" table="t_wife"> <id name="wifeId" type="int"> <column name="wifeId" /> <generator class="native" /> </id> <property name="Name" type="string"> </property> <!-- one to one 类似于 one to many 只需要添加 unique =true 即可 --> <many-to-one name="hb" column="husbandId" ></many-to-one> </class> </hibernate-mapping>
注意:
one to one 类似于 one to many 只需要添加 unique =true 即可
2、One To One 双向
跟单相查不多 就是两边都配上 many to one
调整 hasband.hbm.xml 添加:
<!-- one to one 类似于 one to many 只需要添加 unique =true 即可 --> <many-to-one name="mywife" column="wifeId" ></many-to-one>
调整 husband.java :
| 
       1 
      2 
      3 
      4 
      5 
      6 
      7  | 
    
      public wife getMywife() {    return 
mywife;}public void setMywife(wife mywife) {    this.mywife = mywife;}private 
wife mywife; | 
测试:
| 
       1 
      2 
      3 
      4 
      5 
      6 
      7 
      8 
      9 
      10 
      11 
      12 
      13 
      14 
      15 
      16 
      17 
      18 
      19 
      20 
      21 
      22 
      23 
      24 
      25  | 
    
      @Testpublic void test02_add() {    Session session = null;    try 
{        session = HibernateUtil.getSessionFactory().openSession();        session.beginTransaction();        husband hb = new 
husband();        hb.setName("王大1");        wife w = new 
wife();        w.setName("张妞 2");        w.setHb(hb);        hb.setMywife(w);        session.save(hb);        session.save(w);        System.out.println(w.toString());        session.getTransaction().commit();    } catch 
(Exception e) {        e.printStackTrace();    } finally 
{        if 
(session != null)            session.close();    }} | 
输出:
Hibernate: insert into t_husband (Name, wifeId) values (?, ?)
Hibernate: 
insert into t_wife (Name, husbandId) values (?, ?)
wife [wifeId=6, name=张妞 2, 
hb=com.rhythmk.model.husband@8b677f]
Hibernate: update t_husband set Name=?, 
wifeId=? where husbandId=?
Rhythmk 学习 Hibernate 05 - Hibernate 表间关系 [One To One],布布扣,bubuko.com
Rhythmk 学习 Hibernate 05 - Hibernate 表间关系 [One To One]
标签:style blog class code java color
原文地址:http://www.cnblogs.com/rhythmK/p/3704710.html