Hibernate 第十讲 表关联关系(二)双向项一对一外键关联
来源:互联网 发布:java三大框架书籍 编辑:程序博客网 时间:2024/05/29 15:21
一:annotation配置方式:
package com.darren.relation.model;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.OneToOne;@Entitypublic 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; } public String getName() { return name; } public void setName(String name) { this.name = name; } //意思是被Husband类里边的wife属性映射凡是双向关联,必设mappedBy属性 @OneToOne(mappedBy="wife") public Husband getHusband() { return husband; } public void setHusband(Husband husband) { this.husband = husband; }}
package com.darren.relation.model;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.OneToOne;@Entitypublic class Husband { private int id; private String name; private Wife wife; @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; } @OneToOne @JoinColumn(name="wife_id") public Wife getWife() { return wife; } public void setWife(Wife wife) { this.wife = wife; }}
运行结果:
create table Husband ( id integer not null auto_increment, name varchar(255), wife_id integer, primary key (id) ) create table Wife ( id integer not null auto_increment, name varchar(255), primary key (id) )
二:Xml配置方式:
package com.darren.relation.model;public class WifeXml { private int id; private String name; private HusbandXml husbandXml; 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; } public HusbandXml getHusbandXml() { return husbandXml; } public void setHusbandXml(HusbandXml husbandXml) { this.husbandXml = husbandXml; }}
package com.darren.relation.model;public class HusbandXml { private int id; private String name; private WifeXml wifeXml; 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; } public WifeXml getWifeXml() { return wifeXml; } public void setWifeXml(WifeXml wifeXml) { this.wifeXml = wifeXml; }}
<?xmlversion="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mappingpackage="com.darren.relation.model"> <class name="WifeXml"table="wife_xml"> <id name="id"column="id"> <!--主键生成策略,自动增长 --> <generator class="native"/> </id> <property name="name"></property> <!-- husbandXml表示WifeXml里的属性husbandXml --> <!-- wifeXml表示被 HusbandXml类里的wifeXml属性映射--> <one-to-one name="husbandXml" property-ref="wifeXml"></one-to-one> </class></hibernate-mapping>
<?xmlversion="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.darren.relation.model"> <class name="HusbandXml" table="husband_xml"> <id name="id" column="id"> <generator class="native"/> </id> <property name="name"></property> <!-- wifeXml表示HusbandXml类中的wifeXml对象 --> <!-- wife_id表示HusbandXml生成的表中的外键名 --> <!-- unique="true"表示是一对一关系 --> <many-to-one name="wifeXml" column="wife_id" unique="true"></many-to-one> </class></hibernate-mapping>
运行结果:
create table husband_xml ( id integer not null auto_increment, name varchar(255), wife_id integer unique, primary key (id) ) create table wife_xml ( id integer not null auto_increment, name varchar(255), primary key (id) )
- Hibernate 第十讲 表关联关系(二)双向项一对一外键关联
- Hibernate 第十讲 表关联关系(四)双向一对一主键关联
- Hibernate 第十讲 表关联关系(一)单项一对一外键关联
- Hibernate 第十讲 表关联关系(三)单向项一对一主键关联
- Hibernate 第十讲 表关联关系(五)一对一联合主键关联
- Hibernate一对一双向关联(外键关联)用法小结
- Hibernate 第十讲 表关联关系(九)双向一对多
- Hibernate 第十讲 表关联关系(十一)双向多对多
- Hibernate 一对一外键双向关联
- Hibernate一对一单双向外键关联
- Hibernate 一对一外键双向关联
- Hibernate 一对一外键双向关联
- Hibernate双向一对一外键关联
- Hibernate一对一外键关联映射(双向)
- hibernate一对一外键双向关联
- hibernate一对一外键双向关联
- Hibernate 一对一外键双向关联
- Hibernate一对一外键双向关联
- Android模拟器
- 【深入浅出MFC】第二章 Win32 基本程序观念
- HIBERNATE错误集锦
- 如何杀掉defunct进程
- 旋转卡壳算法
- Hibernate 第十讲 表关联关系(二)双向项一对一外键关联
- Oracle 10g 下载地址(备忘)
- 一致性hash
- 根据安装好的第一个linux虚拟机节点怎么创建相同的第二和第三个虚拟机节点
- pat 1032 Sharing
- mVibrator.vibrate(pattern, 2);
- 第一周项目3——成绩录入
- 用DataSet操作XML
- 11级_Java_曹建波 03.05 Struts2的国际化