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

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

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

    溫馨提示:您的每一次轉載,體現了我寫此文的意義!!!煩請您在轉載時注明出處http://m.tkk7.com/sxyx2008/謝謝合作!!!

    雪山飛鵠

    溫馨提示:您的每一次轉載,體現了我寫此文的意義!!!煩請您在轉載時注明出處http://m.tkk7.com/sxyx2008/謝謝合作!!!

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks

    實體
    Husband
    package com.hibernate.one2one.bean;

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

    @Entity
    @Table(name
    ="husband")
    public class Husband {
        
        
    private int id;
        
    private String name;
        
    private Wife wife;
        @Id
        @GeneratedValue(strategy
    =GenerationType.AUTO)
        @Column(name
    ="id")
        
    public int getId() {
            
    return id;
        }
        
    public void setId(int id) {
            
    this.id = id;
        }
        @Column(name
    ="name")
        
    public String getName() {
            
    return name;
        }
        
    public void setName(String name) {
            
    this.name = name;
        }
        @OneToOne
        @PrimaryKeyJoinColumn
        
    public Wife getWife() {
            
    return wife;
        }
        
    public void setWife(Wife wife) {
            
    this.wife = wife;
        }
        
    }
    Wife
    package com.hibernate.one2one.bean;

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

    @Entity
    @Table(name
    ="wife")
    public class Wife {
        
        
    private int id;
        
    private String name;
        
    private Husband husband;
        @Id
        @Column(name
    ="id")
        
    public int getId() {
            
    return id;
        }
        
    public void setId(int id) {
            
    this.id = id;
        }
        @Column(name
    ="name")
        
    public String getName() {
            
    return name;
        }
        
    public void setName(String name) {
            
    this.name = name;
        }
        @OneToOne(optional
    =false)
        @PrimaryKeyJoinColumn
        
    public Husband getHusband() {
            
    return husband;
        }
        
    public void setHusband(Husband husband) {
            
    this.husband = husband;
        }
        
    }
    溫馨提示:注意wife.java里面的@OneToOne(optional=false)   optional=false  屬性會在wife這端添加一個外鍵約束
    添加上上述屬性使用hbm2ddl導出表,打印出的sql語句
    alter table wife 
            
    drop 
            
    foreign key FK37AF11D67CB035

        
    drop table if exists husband

        
    drop table if exists wife

        
    create table husband (
            id 
    integer not null auto_increment,
            name 
    varchar(255),
            
    primary key (id)
        )

        
    create table wife (
            id 
    integer not null,
            name 
    varchar(255),
            
    primary key (id)
        )

        
    alter table wife 
            
    add index FK37AF11D67CB035 (id), 
            
    add constraint FK37AF11D67CB035 
            
    foreign key (id) 
            
    references husband (id)

    @Test
        
    public void insert(){
            Session session
    =HibernateSessionFactory.getSession();
            Transaction transaction
    =session.beginTransaction();
            
    try {
                transaction.begin();
                Husband husband
    =new Husband();
                husband.setName(
    "小明");
                session.save(husband);
                Wife wife
    =new Wife();
                wife.setName(
    "如花");
                wife.setHusband(husband);
                wife.setId(husband.getId());
                session.save(wife);
                transaction.commit();
            } 
    catch (HibernateException e) {
                e.printStackTrace();
                transaction.rollback();
            }
        }
    @Test
        
    public void insert(){
            Session session
    =HibernateSessionFactory.getSession();
            Transaction transaction
    =session.beginTransaction();
            
    try {
                transaction.begin();
                Husband husband
    =new Husband();
                husband.setName(
    "小明");
                session.save(husband);
                Wife wife
    =new Wife();
                wife.setName(
    "如花");
                wife.setHusband(husband);
                wife.setId(husband.getId());
                session.save(wife);
                transaction.commit();
            } 
    catch (HibernateException e) {
                e.printStackTrace();
                transaction.rollback();
            }
        }
    溫馨提醒:此處必須同時設置
    wife.setHusband(husband);
    wife.setId(husband.getId());
    否則報org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update

    示例程序
    posted on 2010-10-14 10:28 雪山飛鵠 閱讀(2242) 評論(1)  編輯  收藏 所屬分類: Hibernate

    Feedback

    # re: Hibernate一對一主鍵雙向關聯映射(Annotation配置) 2013-04-20 15:25 cjl
    wife.setId(husband.getId());這個其實沒有必要,你還有設置沒設好  回復  更多評論
      

    主站蜘蛛池模板: 国产aⅴ无码专区亚洲av麻豆 | 亚洲色大18成人网站WWW在线播放| 亚洲色欲久久久久综合网| 性生交片免费无码看人| 国产麻豆成人传媒免费观看| 99亚洲男女激情在线观看| 国产精品亚洲四区在线观看 | 中文字幕在线免费看线人| 日本亚洲高清乱码中文在线观看| 亚洲国产亚洲片在线观看播放| 亚洲精品美女久久777777| 免费在线观看污网站| 在线观看视频免费国语| 免费精品国产自产拍在| 最近免费中文字幕高清大全 | 亚洲国产a∨无码中文777| 亚洲日韩中文在线精品第一| 国产一级高清视频免费看| 免费看www视频| 女人毛片a级大学毛片免费| av免费不卡国产观看| 国产黄色免费网站| 91久久精品国产免费直播| 最近中文字幕mv免费高清视频8 | 亚洲精品在线网站| 久久久久亚洲AV片无码下载蜜桃| 亚洲成AV人片在WWW色猫咪 | 免费A级毛片无码A∨免费| 久久精品无码专区免费青青| 日韩精品久久久久久免费| 一区二区三区四区免费视频| 无码人妻一区二区三区免费看| 久艹视频在线免费观看| 中文字幕免费视频| 99久久这里只精品国产免费| 国产精品69白浆在线观看免费| 免费下载成人电影| 在线精品免费视频无码的| 国产网站免费观看| 亚洲第一区精品观看| 国产亚洲自拍一区|