影射

---------------------------------一對多-------------------------------------------------
Id Name password
Id Subname tid
Test.java
private int id;
 private String name;
 private String password;
 private Set<Subtest> subtestes=new HashSet<Subtest>();
subtest.java
private int id;
 private String subname;
 private Test test;
Test.hbm.xml
  <class name="Test" table="TEST">
        <id name="id" type="java.lang.Integer">
          <generator class="assigned"></generator>
        </id>
        <property name="name" type="java.lang.String"></property>
        <property name="password" type="java.lang.String"></property>
        <set name="subtestes" table="Subtest" inverse="true" cascade="all">
          <key  column="id"></key>
          <one-to-many class="Subtest"/>
        </set>
    </class>
Subtest.hbm.xml
  <class name="com.epng.Subtest" table="SUBTEST" >
        <id name="id" type="java.lang.Integer">
          <generator class="assigned"></generator>
        </id>
        <property name="subname" type="java.lang.String"></property>
        <many-to-one name="test" class="Test">
           <column name="tid" ></column>
        </many-to-one>
  </class>
                Test test =new Test();
  Set<Subtest> sb=new HashSet<Subtest>();
  test.setId(new Integer(12));
  test.setName("epng");
  test.setPassword("epng123");
  Subtest subtest=new Subtest();
  subtest.setId(new Integer(1));
  subtest.setSubname("epng222");
  subtest.setTest(test);
  Subtest subtest1=new Subtest();
  subtest1.setId(new Integer(2));
  subtest1.setSubname("epng333");
  subtest1.setTest(test);
  test.getSubtestes().add(subtest);
  test.getSubtestes().add(subtest1);
  Session sess= HibernateUtil.currentSession();
  Transaction ts=sess.beginTransaction();
  sess.save(test);
  ts.commit();
  sess.close();
-------------------------------------基于外鍵一對一------------------------------------------------
author_id   person_id
person_id   name 
Author.java
        private String authorId;
 private Person person;
Person.java
        private String personId;
 private String name;
 private Author author;
Author.hbm.xml
  <class name="com.epng.Author" table="AUTHOR">
        <id name="authorId" column="author_id" type="java.lang.String">
            <generator class="assigned"></generator>
        </id>
        <many-to-one name="person" cascade="all"
        class="com.epng.Person" unique="true" column="person_id"/>
    </class>
Person.hbm.xml
      <class name="com.epng.Person" table="PERSON">
  <id name="personId" column="person_id">
     <generator class="assigned"/>
  </id>
  <property name="name" type="java.lang.String">
   <column name="NAME" length="20" />
  </property>
  <one-to-one name="author" class="com.epng.Author" property-ref="person"></one-to-one>
 </class>
                Session sess= HibernateUtil.currentSession();
  Transaction ts=sess.beginTransaction();
  Author a=new Author();
  Person p=new Person();
  p.setPersonId("1");
  p.setName("tangqing");
  a.setAuthorId("11");
  a.setPerson(p);
  sess.save(p);
  sess.save(a);
  ts.commit();
  sess.close();

-------------------------------------基于主鍵一對一------------------------------------------------
author_id   person_id
person_id   name       author_id
Author.java
        private String authorId;
 private String personId;
 private Person person;
Person.java
        private String personId;
 private String authorId;
 private String name;
 private Author author;
Author.hbm.xml
  <class name="com.epng.Author" table="AUTHOR">
        <id name="authorId" column="author_id" type="java.lang.String">
            <generator class="assigned"></generator>
        </id>
        <property name="personId" column="person_id" type="java.lang.String"/>
        <one-to-one name="person" cascade="all" class="com.epng.Person" />
    </class>
Person.hbm.xml
      <class name="com.epng.Person" table="PERSON">
  <id name="authorId" column="author_id">
     <generator class="foreign">
          <param name="property">author</param>
     </generator>
  </id>
  <property name="name" type="java.lang.String">
   <column name="NAME" length="20" />
  </property>
  <property name="personId" type="java.lang.String">
   <column name="person_id" length="20" />
  </property>
  <one-to-one name="author" class="com.epng.Author" constrained="true"></one-to-one>
 </class>
                Session sess= HibernateUtil.currentSession();
  Transaction ts=sess.beginTransaction();
  Author a=new Author();
  a.setAuthorId("11");
  a.setPersonId("bbb");
  Person p=new Person();
  p.setPersonId("1");
  p.setName("tangqing");
  p.setAuthor(a);
  a.setPerson(p);
  sess.save(p);
  sess.save(a);
  ts.commit();
  sess.close();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值