<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 雪山飛鵠 閱讀(2236) 評論(1)  編輯  收藏 所屬分類: Hibernate

    Feedback

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

    主站蜘蛛池模板: 7723日本高清完整版免费| 日本亚洲视频在线| 亚洲人成图片网站| 久久久精品2019免费观看| 亚洲精品成人片在线播放| a毛片全部免费播放| 国产∨亚洲V天堂无码久久久| 99视频在线免费观看| 亚洲Av无码专区国产乱码DVD| 大地资源在线资源免费观看 | 亚洲熟妇无码一区二区三区 | a级亚洲片精品久久久久久久 | 亚洲成在人线在线播放无码 | 亚洲AV无码一区二区大桥未久| 青青青国产免费一夜七次郎| 精品在线观看免费| 亚洲乱亚洲乱妇24p| 国产精品无码素人福利免费| 男性gay黄免费网站| 亚洲午夜国产精品无码| 91精品全国免费观看含羞草 | 亚洲福利精品电影在线观看| AAAAA级少妇高潮大片免费看 | 亚洲人成人网毛片在线播放| 国产在线观看免费视频播放器| 一区二区在线免费视频| 久久亚洲中文字幕精品有坂深雪| 成人黄动漫画免费网站视频| 四虎一区二区成人免费影院网址 | 在线免费不卡视频| 无套内射无矿码免费看黄| 亚洲第一福利网站| 成人五级毛片免费播放| 一级**爱片免费视频| 亚洲视频在线观看不卡| 国产精品成人四虎免费视频| 亚欧国产一级在线免费| 亚洲精品日韩中文字幕久久久| 在线免费观看国产视频| 亚洲精品国产国语| 亚洲精品V欧洲精品V日韩精品|