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就已经获得值了,但是没有仔细认真的测试过,也没找到相关说明,是否可以这样做,不确定。