hibernate笔记-005-一对一映射

来源:互联网 发布:软件侵权被起诉 编辑:程序博客网 时间:2024/06/07 17:47

注解配置

实体类:

package com.hibernate.bean;import java.io.Serializable;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.OneToOne;import javax.persistence.Table;import org.hibernate.annotations.GenericGenerator;@Entity@Table(name = "person")public class Person implements Serializable {private static final long serialVersionUID = 164729354340664000L;@Id@GeneratedValue(generator = "person_gen")@GenericGenerator(name = "person_gen", strategy = "native")private int id;private String name;// optional = true设置idcard属性可以为空@OneToOne(optional = true)@JoinColumn(name = "idcard", unique = true)private IDCard idcard;public int getId() {return id;}public IDCard getIdcard() {return idcard;}public String getName() {return name;}public void setId(int id) {this.id = id;}public void setIdcard(IDCard idcard) {this.idcard = idcard;}public void setName(String name) {this.name = name;}}

package com.hibernate.bean;import java.io.Serializable;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.Table;import org.hibernate.annotations.GenericGenerator;@Entity@Table(name = "idcard")public class IDCard implements Serializable {private static final long serialVersionUID = -9090370736334654436L;@Id@GeneratedValue(generator = "idcard_gen")@GenericGenerator(name = "idcard_gen", strategy = "native")private int id;private String address;public String getAddress() {return address;}public int getId() {return id;}public void setAddress(String address) {this.address = address;}public void setId(int id) {this.id = id;}}

xml配置

实体类:

package com.hibernate.bean;import java.io.Serializable;public class Person implements Serializable {private static final long serialVersionUID = 164729354340664000L;private int id;private String name;private IDCard idcard;public int getId() {return id;}public IDCard getIdcard() {return idcard;}public String getName() {return name;}public void setId(int id) {this.id = id;}public void setIdcard(IDCard idcard) {this.idcard = idcard;}public void setName(String name) {this.name = name;}}

package com.hibernate.bean;import java.io.Serializable;public class IDCard implements Serializable {private static final long serialVersionUID = -9090370736334654436L;private int id;private String address;public String getAddress() {return address;}public int getId() {return id;}public void setAddress(String address) {this.address = address;}public void setId(int id) {this.id = id;}}

映射文件:

<?xml version="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.hibernate.bean"><class name="Person" table="t_person"><id name="id" column="id"><generator class="native" /></id><property name="name" column="name" /><many-to-one name="idcard" column="idcard_id" unique="true" /></class></hibernate-mapping>

<?xml version="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.hibernate.bean"><class name="IDCard" table="t_idcard"><id name="id" column="id"><generator class="native" /></id><property name="address" column="address" /></class></hibernate-mapping>

xml使用many-to-one添加unique="true"来生成一对一的关系。

原创粉丝点击