传智播客Hibernate视频教程学习笔记18
2009-08-03 16:19
603 查看
一对一关系映射
Person.java
IdCard.java
Person.hbm.xml
IdCard.hbm.xml
test.java
发现一对一关系中
p.setIdCard(idCard);
idCard.setPerson(p);
相互都设置了关联,但是去掉第一行代码,程序仍能正常运行,而相反删去第二行代码,程序报错。
是存在主从表关系,可以仅保存主对象,但是不可以只保存从对象不保存主对象。
Person.java
package domain; public class Person { private int id; private String name; private IdCard idCard; 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 IdCard getIdCard() { return idCard; } public void setIdCard(IdCard idCard) { this.idCard = idCard; } }
IdCard.java
package domain; import java.util.Date; public class IdCard { private int id; private Date usefulLife; private Person person; public int getId() { return id; } public void setId(int id) { this.id = id; } public Date getUsefulLife() { return usefulLife; } public void setUsefulLife(Date usefulLife) { this.usefulLife = usefulLife; } public Person getPerson() { return person; } public void setPerson(Person person) { this.person = person; } }
Person.hbm.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="domain"> <class name="Person"> <id name="id"> <generator class="native"/> </id> <property name="name"></property> <one-to-one name="idCard"></one-to-one> </class> </hibernate-mapping>
IdCard.hbm.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="domain"> <class name="IdCard" table="id_card"> <id name="id"> <generator class="foreign"> <param name="property">person</param> </generator> </id> <property name="usefulLife" column="userful_life"></property> <one-to-one name="person" constrained="true"></one-to-one> </class> </hibernate-mapping>
test.java
import java.util.Date; import domain.IdCard; import domain.Person; import hibernate.HibernateUtil; public class test { /** * @param args */ public static void main(String[] args) { IdCard idCard = new IdCard(); idCard.setUsefulLife(new Date()); Person p = new Person(); p.setName("pf"); p.setIdCard(idCard); idCard.setPerson(p); HibernateUtil.add(p); HibernateUtil.add(idCard); } }
发现一对一关系中
p.setIdCard(idCard);
idCard.setPerson(p);
相互都设置了关联,但是去掉第一行代码,程序仍能正常运行,而相反删去第二行代码,程序报错。
是存在主从表关系,可以仅保存主对象,但是不可以只保存从对象不保存主对象。
相关文章推荐
- 传智播客Hibernate视频教程学习笔记30
- 传智播客Hibernate视频教程学习笔记43
- 传智播客Hibernate视频教程学习笔记49
- 传智播客Hibernate视频教程学习笔记1
- 传智播客Hibernate视频教程学习笔记6
- 传智播客Hibernate视频教程学习笔记14
- 传智播客Hibernate视频教程学习笔记29
- 传智播客Hibernate视频教程学习笔记38
- 传智播客Hibernate视频教程学习笔记42
- 传智播客Hibernate视频教程学习笔记54
- 传智播客Hibernate视频教程学习笔记10 11 12 13
- 传智播客Hibernate视频教程学习笔记15
- 传智播客Hibernate视频教程学习笔记21
- 传智播客Hibernate视频教程学习笔记24
- 传智播客Hibernate视频教程学习笔记33
- 传智播客Hibernate视频教程学习笔记44 45
- 传智播客Hibernate视频教程学习笔记50
- 传智播客Hibernate视频教程学习笔记53
- 传智播客Hibernate视频教程学习笔记2
- 传智播客Hibernate视频教程学习笔记16