您的位置:首页 > 其它

SSH框架学习(十一、Hibernate一对多)

2012-12-13 15:07 246 查看
hbm文件配置

<many-to-one name="user" class="User" column="fk_user_id" not-null="true" />


<set name="userInfo" cascade="delete" inverse="true">
<key column="fk_user_id" />
<one-to-many class="UserInfo" />
</set>


one的这一端,cascade建议设置为delete,这样,当one这一端删除时,会请除many端的垃圾数据。不建议用save-update,这样避免一些不必要的更新操作的出现。缺点是,类似

user.setEmail("email");
userInfo.setTel("tel");
user.getUserInfo().add(userInfo);
userDAO.save(user);
这样的用法无法使用。

新增方法

Long id=(Long)userDAO.save(user);
user=userDAO.get(id);
userInfo.setUser(user);
userInfoDAO.save(userInfo);
这是比较稳妥的方法,

userDAO.save(user);
userInfo.setUser(user);
userInfoDAO.save(userInfo);
上面这种方法貌似也行,而且节省一条查询语句,因为在debug的时候,第一行完成以后,user就id就已经获得值了,但是没有仔细认真的测试过,也没找到相关说明,是否可以这样做,不确定。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: