Student.java
public class Student { private int id; private String name; private int age; private StuCard stuCard; 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 int getAge() { return age; } public void setAge(int age) { this.age = age; } public StuCard getStuCard() { return stuCard; } public void setStuCard(StuCard stuCard) { this.stuCard = stuCard; } }
StuCard.java
public class StuCard { private int stuNo; private String color; public int getStuNo() { return stuNo; } public void setStuNo(int stuNo) { this.stuNo = stuNo; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } }
Student.hbm.xml
<?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> <class name="com.hibernate.model.Student" dynamic-update="true"> <id name="id"> <generator class="native"> </generator> </id> <property name="name" /> <property name="age" /> <many-to-one name="stuCard" foreign-key="stu_card" unique="true" column="stuNo" /> </class> </hibernate-mapping>
StuCard.hbm.xml
<?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> <class name="com.hibernate.model.StuCard"> <id name="stuNo"> <generator class="native"></generator> </id> <property name="color"/> </class> </hibernate-mapping>
(2)annotation方法
Student.java
import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.OneToOne; import javax.persistence.Id; @Entity public class Student { private int id; private String name; private int age; private StuCard stuCard; @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; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @OneToOne public StuCard getStuCard() { return stuCard; } public void setStuCard(StuCard stuCard) { this.stuCard = stuCard; } }
StuCard.java
import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; @Entity public class StuCard { private int stuNo; private String color; @Id @GeneratedValue public int getStuNo() { return stuNo; } public void setStuNo(int stuNo) { this.stuNo = stuNo; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } }
测试方法
import org.hibernate.cfg.Configuration; import org.hibernate.tool.hbm2ddl.SchemaExport; import org.junit.Test; public class TestAll { @Test public void OneToOne(){ new SchemaExport(new Configuration().configure()).create(true, true); } }
这个测试方法会在控制台生成创表信息,记得在hibernate.cfg.xml文件中添加映射信息