<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    HelloWorld 善戰(zhàn)者,求之于勢,不責(zé)于人;故能擇人而任勢。

    知止而后有定,定而后能靜,靜而后能安,安而后能慮,慮而后能得。物有本末,事有終始。知所先后,則近道矣。

      BlogJava :: 首頁 ::  :: 聯(lián)系 ::  :: 管理 ::
      167 隨筆 :: 1 文章 :: 40 評論 :: 0 Trackbacks

    CREATE TABLE t_users
    (
      id int4 NOT NULL DEFAULT nextval('t_user_id_seq'::text),
      age int4,
      name varchar(30),
      CONSTRAINT t_users_pkey PRIMARY KEY (id)
    )
    CREATE TABLE t_passports
    (
      id int4 NOT NULL DEFAULT nextval('t_user_id_seq'::text),
      serial varchar(30),
      expiry int4,
      CONSTRAINT t_passports_pkey PRIMARY KEY (id),
      CONSTRAINT t_passports_id_fkey FOREIGN KEY (id)
          REFERENCES t_users (id) MATCH SIMPLE
          ON UPDATE RESTRICT ON DELETE RESTRICT
    )
    第一部分 使用xml配置
    源代碼下載http://www.tkk7.com/Files/zhaochengming/one2one%20xmlcomfig%20hibernate.rar
    t_users和t_passports根據(jù)t_user.id一對一關(guān)聯(lián)
    TUsers.hbm.xml
    <hibernate-mapping>
        <class name="com.tables.one2one.TUsers" table="t_users" schema="public">
            <id name="id" type="java.lang.Integer">
                <column name="id" />
                <generator class="sequence">
                <param name="sequence">t_user_id_seq</param>
                </generator>

            </id>
            <property name="age" type="java.lang.Integer">
                <column name="age" />
            </property>
            <property name="name" type="java.lang.String">
                <column name="name" length="30" />
            </property>
            <!-- 如果cascade=none的話,就不會級聯(lián)更新了,就是說只在t_users中插入值,在t_passports中不插入值 -->
            <one-to-one name="passport" class="com.tables.one2one.TPassports"
             cascade="all" outer-join="true">
             
            </one-to-one>
        </class>
    </hibernate-mapping>

    TPassports.hbm.xml
    <hibernate-mapping>
        <class name="com.tables.one2one.TPassports" table="t_passports" schema="public">
            <id name="id" type="java.lang.Integer">
                <column name="id" />
                <!-- 這里一定要改成foreign -->
                <generator class="foreign">
                <param name="property">user</param>
                </generator>

            </id>
            <one-to-one name="user" class="com.tables.one2one.TUsers" constrained="true"></one-to-one>
            <property name="serial" type="java.lang.String">
                <column name="serial" length="30" />
            </property>
            <property name="expiry" type="java.lang.Integer">
                <column name="expiry" />
            </property>
        </class>
    </hibernate-mapping>
    測試
    public class One2OneTest extends BaseHibernateDAO {
          public void test() {
            TUsers user = new TUsers();
            user.setAge(100);
            user.setName("CEYLIN");
            TPassports passport = new TPassports();
            passport.setSerial("PCN1002211");
            passport.setExpiry(20080806);
            passport.setUser(user);
            user.setPassport(passport);
            Session session = this.getSession();
            Transaction tx = session.beginTransaction();
            session.save(user);
            tx.commit();
        }
    }

    第二部分 使用注解,
    源代碼下載  http://www.tkk7.com/Files/zhaochengming/one2oneAnno1.rar

    package com;

    import javax.persistence.CascadeType;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import javax.persistence.OneToOne;
    import javax.persistence.PrimaryKeyJoinColumn;
    import javax.persistence.SequenceGenerator;
    import javax.persistence.Table;

    @Entity
    @Table(name="t_users")
    public class TUser {
     @Id
     @Column(name = "user_id")
     @GeneratedValue(generator = "sequence")
     @SequenceGenerator(name = "sequence", sequenceName = "t_table_id_seq")
     private Integer id;
     
     @Column(name = "age")
     private Integer age;
     
     @Column(name= "name")
     private String name;
     
     @OneToOne(cascade = CascadeType.ALL)
     @PrimaryKeyJoinColumn
     private TPassport passport;

     public Integer getAge() {
      return age;
     }

     public void setAge(Integer age) {
      this.age = age;
     }

     public Integer getId() {
      return id;
     }

     public void setId(Integer id) {
      this.id = id;
     }

     public String getName() {
      return name;
     }

     public void setName(String name) {
      this.name = name;
     }

     public TPassport getPassport() {
      return passport;
     }

     public void setPassport(TPassport passport) {
      this.passport = passport;
     }
    }

    package com;

    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import javax.persistence.OneToOne;
    import javax.persistence.Table;

    import org.hibernate.annotations.GenericGenerator;
    import org.hibernate.annotations.Parameter;

    @Entity
    @Table(name = "t_passports")
    public class TPassport {
     @Id
     @GeneratedValue(generator = "fk")
     @GenericGenerator(strategy = "foreign", name = "fk", parameters = @Parameter(name="property", value="user"))
     private Integer id;
     
     @Column(name = "serial")
     private String serial;
     
     @Column(name="expiry")
     private Integer expiry;
     
     @OneToOne(mappedBy="passport", optional = false)
     private TUser user;

     public Integer getExpiry() {
      return expiry;
     }

     public void setExpiry(Integer expiry) {
      this.expiry = expiry;
     }

     public Integer getId() {
      return id;
     }

     public void setId(Integer id) {
      this.id = id;
     }

     public String getSerial() {
      return serial;
     }

     public void setSerial(String serial) {
      this.serial = serial;
     }

     public TUser getUser() {
      return user;
     }

     public void setUser(TUser user) {
      this.user = user;
     }
    }



    </script>

    posted on 2007-08-14 13:58 helloworld2008 閱讀(1643) 評論(1)  編輯  收藏 所屬分類: java - hibernatejava

    評論

    # re: (2) Hibernate 數(shù)據(jù)關(guān)聯(lián) one to one(共享主鍵) 2007-10-23 00:19 helloworld2008
    抄自己的書,讓別人去說吧  回復(fù)  更多評論
      

    主站蜘蛛池模板: 国产免费的野战视频| 免费鲁丝片一级观看| 亚洲AV日韩精品久久久久久久 | 亚洲va在线va天堂va手机| 久久精品成人免费国产片小草| 2021国内精品久久久久精免费| 国产特级淫片免费看| 亚洲人av高清无码| 好男人视频社区精品免费| 亚洲综合激情五月丁香六月| 成年在线观看免费人视频草莓| 亚洲精品夜夜夜妓女网| 亚洲熟妇无码av另类vr影视| 久久精品无码一区二区三区免费| 国产v亚洲v天堂无码网站| 久久免费视频网站| 亚洲天堂中文字幕| 亚洲av午夜国产精品无码中文字| 毛片在线全部免费观看| 亚洲av日韩av天堂影片精品| 性xxxxx大片免费视频| 久久综合亚洲色HEZYO社区| 精品亚洲福利一区二区| 中文字幕在线成人免费看| 精品国产精品久久一区免费式| 久久夜色精品国产亚洲AV动态图 | 69式国产真人免费视频 | 国产免费看插插插视频| 美女黄色免费网站| 亚洲婷婷国产精品电影人久久| 亚洲人成网站18禁止| 国产在线19禁免费观看国产| 无码日韩人妻AV一区免费l| 亚洲啪啪AV无码片| 鲁丝片一区二区三区免费| 亚洲欧洲视频在线观看| 好爽又高潮了毛片免费下载| 无遮挡a级毛片免费看| 亚洲韩国精品无码一区二区三区| 精品国产麻豆免费网站| 亚洲精品无码不卡在线播HE|