首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

OneToOne annotation 双向联系关系

2012-10-06 
OneToOne annotation 双向关联?package com.hibernate.entityimport java.io.Serializableimport javax.

OneToOne annotation 双向关联

?

package com.hibernate.entity;import java.io.Serializable;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.OneToOne;@Entitypublic class Husband implements Serializable {/** *  */private static final long serialVersionUID = 2476364405175138004L;private int id;private String name;private Wife wife;@Id@GeneratedValuepublic int getId() {return id;}public String getName() {return name;}@OneToOnepublic Wife getWife() {return wife;}public void setId(int id) {this.id = id;}public void setName(String name) {this.name = name;}public void setWife(Wife wife) {this.wife = wife;}}

?

?

package com.hibernate.entity;import java.io.Serializable;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.OneToOne;@Entitypublic class Wife implements Serializable {/** *  */private static final long serialVersionUID = 5270130768836331730L;private int id;private String name;private Husband husband;@Id@GeneratedValuepublic 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;}@OneToOne(mappedBy="wife")public Husband getHusband() {return husband;}public void setHusband(Husband husband) {this.husband = husband;}}
?

?

?

注意:Wife类的getHusband()上用了mappedBy"wife"

这个意思是说,我这里的OneToOne就不用管了,只用Husband里的getWife()上的OneToOne关系

生成的表为Husband参考Wife,有了wifeid,才能有Husband

Husband为这个关系的拥有者

?

如果Wife类的getHusband()只有@OneToOne,没有mappedBy,那么生成的两张表都会有对方的外键,造成外键冗余。

?

?

热点排行