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

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

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

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

    雪山飛鵠

    溫馨提示:您的每一次轉載,體現了我寫此文的意義!!!煩請您在轉載時注明出處http://www.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());這個其實沒有必要,你還有設置沒設好  回復  更多評論
      

    主站蜘蛛池模板: 16女性下面扒开无遮挡免费| 中国一级特黄高清免费的大片中国一级黄色片 | 亚洲H在线播放在线观看H| 亚洲精品123区在线观看| 小说区亚洲自拍另类| 中文字幕在线视频免费观看| 午夜无码A级毛片免费视频| 成年网站免费视频A在线双飞| 日产乱码一卡二卡三免费| 伊人久久大香线蕉亚洲五月天| 亚洲国产成人久久综合一| 亚洲中文字幕一区精品自拍| 色老头综合免费视频| 十八禁无码免费网站| 韩国欧洲一级毛片免费| 亚洲无码在线播放| 33333在线亚洲| 亚洲国产综合第一精品小说| 无码亚洲成a人在线观看| 最近的2019免费中文字幕| 国产黄色免费网站| 亚洲国产中文字幕在线观看| 亚洲尹人香蕉网在线视颅| 久久亚洲AV成人无码国产电影| 成人影片一区免费观看| 毛片基地免费视频a| 亚洲人成图片小说网站| 亚洲男人天堂2018av| 好吊色永久免费视频大全| 免费国产黄线在线观看| 亚洲乱码精品久久久久..| 亚洲午夜无码久久久久小说| 免费在线黄色电影| 日本人护士免费xxxx视频| 亚洲欧洲日韩国产综合在线二区| 亚洲AV色无码乱码在线观看| 99视频免费观看| 亚洲国产一区视频| 亚洲一区二区三区成人网站| 国产精品免费福利久久| 免费人妻无码不卡中文字幕18禁|