读书人

hibernate学习札记第5讲-多对一关联映

发布时间: 2012-11-21 08:23:26 作者: rapoo

hibernate学习笔记第5讲-多对一关联映射many-to-one

?

session.beginTransaction();

???????????????????????????

??????????????????????????? Group group = newGroup();

??????????????????????????? group.setName("尚学堂");

???????????????????????????

??????????????????????????? User user1 = newUser();

??????????????????????????? user1.setName("菜10");

??????????????????????????? user1.setGroup(group);

???????????????????????????

??????????????????????????? User user2 = newUser();

??????????????????????????? user2.setName("容祖儿");

??????????????????????????? user2.setGroup(group);

???????????????????????????

??????????????????????????? //不能成功保存,抛出TransientObjectException异常

??????????????????????????? //因为还没有保存Group,此时为Transient状态,oid没有分配值

??????????????????????????? //persistent状态的对象是不能引用transient状态的对象的

??????????????????????????? //关联关系配置中cascade =‘none’

??????????????????????????? session.save(user1);

??????????????????????????? session.save(user2);

??????????????????????????? session.getTransaction().commit();

?

存储_例子2:

??????????????????????????? session.beginTransaction();

???????????????????????????

??????????????????????????? Group group = newGroup();

??????????????????????????? group.setName("尚学堂");

?????????????????? ???????? //此时已保存到数据库中,变成persistent状态,但是在数据库中查不到,跟数据库的隔离级别有关系。

??????????????????????????? session.save(group);

???????????????????????????

??????????????????????????? User user1 = newUser();

??????????????????????????? user1.setName("菜10");

??????????????????????????? user1.setGroup(group);

???????????????????????????

??????????????????????????? User user2 = newUser();

??????????????????????????? user2.setName("容祖儿");

??????????????????????????? user2.setGroup(group);

???????????????????????????

??????????????????????????? //可以正确存储

??????????????????????????? session.save(user1);

??????????????????????????? session.save(user2);

??????????????????????????? session.getTransaction().commit();

当cascade? != ‘none‘时,是级联操作,在存user1时会先把group存了。

读书人网 >软件架构设计

热点推荐