注解配置
实体类:
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"来生成一对一的关系。