我想更新数据库的 UserData 属性之一,它具有(名称、街道、城市等),所以:
关系和数据库属性: 此 UserData 与他的用户有双向关系,其中使用 User.hbm.xml 上的 cascade="save-update",所以
用户在数据库中有这个属性(id_user,外键: id_UserDetail,状态)
UserData有(id_UserDetail、外键: id_User 和经典信息字段名称、街道、电话等)
我使用这种方法更新到数据库: 更新方法
public void ajaxNameListener(AjaxBehaviorEvent event) {
UserData usrData = new UserData();
userData.setName(name); // I want update only name property,but unfortunately rest is also overwriten to null in DB
User user = BeanFactory
.getHotelDAOService(User.class)
.findbyIdIndetifier(selectedUserId); // selectedUserId is just identifier from my list of user,so here i declared which concrete User be updated by Id of Users
user.setUserData(userData);
BeanFactory.getHotelDAOService(User.class)
.update(user);
}
此方法在我的 Jsf 页面上用作侦听器形式<a4j:>
,但这没有问题,
我需要以某种方式修复此方法以仅更新我需要的这个 DB 字段,而其余部分必须取消,但在这种情况下,我成功地进行了更改,例如在字段“名称”上通过特定 ID 更新字段名称,但其余的 UserData 列是覆盖为NULL,
有人可以给我一些建议如何修改此方法吗?或者可以根据这种情况编写自己的方法,这会导致只更新我想要更新的这个字段,而不是数据库中的 NULL,非常感谢你的帖子和回复,干杯,