zoukankan      html  css  js  c++  java
  • Hibernate之onetoone双向外键关联Annotation

    Husband.java

    package com.itmyhome.model;
    
    import javax.persistence.Entity;
    import javax.persistence.FetchType;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import javax.persistence.JoinColumn;
    import javax.persistence.OneToOne;
    
    @Entity
    public class Husband {
    	private int id;
    	private String name;
    	private Wife wife;
    
    	/*
    	 * Id生成策略 mysql默认是auto_crement
    	 */
    	@Id
    	@GeneratedValue
    	public int getId() {
    		return id;
    	}
    
    	public void setId(int id) {
    		this.id = id;
    	}
    
    	/*
    	 * OneToOne
    	 * JoinColumn用来指定生成的外键名字 
    	 */
    	@OneToOne(fetch=FetchType.LAZY)
    	@JoinColumn(name="wifeId")
    	public Wife getWife() {
    		return wife;
    	}
    
    	public void setWife(Wife wife) {
    		this.wife = wife;
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    }
    


    Wife.java

    package com.itmyhome.model;
    
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import javax.persistence.JoinColumn;
    import javax.persistence.OneToOne;
    
    @Entity
    public class Wife {
    	private int id;
    	private String name;
    	private Husband husband;
    
    	@Id
    	@GeneratedValue
    	public int getId() {
    		return id;
    	}
    
    	public void setId(int id) {
    		this.id = id;
    	}
    
    	/*
    	 * 凡是双向必设mappedBy
    	 * 如果不设mappedBy 双方都会加外键约束 
    	 */
    	@OneToOne(mappedBy="wife")
    	@JoinColumn(name="husbandId")
    	public Husband getHusband() {
    		return husband;
    	}
    
    	public void setHusband(Husband husband) {
    		this.husband = husband;
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    }
    


    hibernate生成的sql如下:

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


     

    create table Wife (
            id integer not null auto_increment,
            name varchar(255),
            primary key (id)
        )
    alter table Husband 
            add index FKAEEA401B78A8164D (wifeId), 
            add constraint FKAEEA401B78A8164D 
            foreign key (wifeId) 
            references Wife (id)


     

  • 相关阅读:
    openfire学习4------->android客户端聊天开发之聊天功能开发
    MTD中的nand驱动初步分析---面向u-boot
    在线代码编缉器
    三个角度解构云计算,商业驱动or技术驱动?
    分布式存储的三个基本问题
    云计算核心技术
    云计算历史
    《信息产业指南》云计算解读
    2017云计算市场需要密切关注的10个趋势
    2017云计算机会
  • 原文地址:https://www.cnblogs.com/itmyhome/p/4131510.html
Copyright © 2011-2022 走看看