Hibernate之onetoone单向外键关联Annotation

Husband.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 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
	@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;

@Entity
public class Wife {
	private int id;
	private String name;
	
	@Id
	@GeneratedValue
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
}


hibernate为我们生成的表结构为:

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)


 

原文地址:https://www.cnblogs.com/itmyhome/p/4131511.html