hibernate3.2 (七)一对一关联映射
一个人只能有一个身份证号码。
1对1单向关联,即单向引用,例如:person持有cardid的引用。
1对1双向关联,即双向引用,互相持有对对方的引用。
1对1主键关联,主键关联主键,也就是说有一方主键不需要自己建立,而是引用了另一方的主键。
1对1外键关联。
?
一、单向一对一主键关联映射:
通常使用一个特定的id生成器:
这里的主键生成策略:
<id name="id">
<generator? unique="true"/>?
?与多对一需要注意的问题一样,在save person对象之前,必须先save idCard对象,或者设置casecade = true。
?
public void testone2one_Save(){Session session = HibernateUtils.getSession();try {session.beginTransaction();IdCard idcCard = new IdCard();idcCard.setCardid("370211198606150012");Person person = new Person();person.setIdcCard(idcCard);person.setName("小明");session.save(person);session.getTransaction().commit();} catch (HibernateException e) {e.printStackTrace();session.getTransaction().rollback();}finally{HibernateUtils.closeSession(session);}}?打印输出:
Hibernate: insert into IdCard (cardid) values (?)
Hibernate: insert into Person (name, idCard) values (?, ?)?
双向一对一唯一外键关联映射、双向一对一主键关联映射用的不是很多,以后遇到再加以说明。