一对一的关系:人----身份证
在关系型 数据库中有一种一对一的关系。类似于上面的这种情况。一个人只对应一个身份证。
反之亦然。那么在hibernate的对象模型中是怎么样去配置关联一对一的这种映射关系呢
1、 JavaBean:(省略set和get方法)
1、Person.java
private int id;
private String name;
private IdCard idcard;
2、IdCard.Java
private int id;
private String usetime;
private Person person;
2、 Xml配置文件:不难看出上面的两个类互相有对方的一个属性形式,那么hibernate的xml文件如下:
Person.hbm.xml
IdCard.hbm.xml
person
3、 生成表的插入操作:
static void AddPersonAndIdCard(){
Session s = null;
Transaction tx = null;
try{
s = HibernateUtil.getSession();
tx = s.beginTransaction();
Person p = new Person();
IdCard idcard = new IdCard();
p.setName("zhanglei");
idcard.setUsetime("usertime");
idcard.setPerson(p);
p.setIdcard(idcard);
s.save(p);
s.save(idcard);
tx.commit();
System.out.println("1111");
}catch(HibernateException e){
//判断事务有没有完全提交的判断方式
if(tx != null){
tx.rollback();
throw e;
}
}finally{
if(s != null){
s.close();
}
}
}
//注意:
/*
对于上文中的Java代码中有一些自定义的类。拿到session对象。如果想看封装类的话请看前面的BLOG
本文中要注意的地方主要是对于idcard的一个setPerson的操作。这个操作是不可以没有的。因为它的ID生成依赖person的ID值。
*/
作者:zhang6622056