我想更新databgase其具有的UserData属性(名称,街道,城市等)的一个 这样:如何更新一个特定属性数据库,无需重写为NULL,其余性能
关系& DB属性: 该用户数据与他的用户的双向关系,其中级联=“保存更新”上User.hbm.xml被使用,所以
用户有这种性质的DB(id_user,外交关键: i d_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);
}
此方法用于为收听形式<a4j:>
我的JSF页面上,但没有问题与此,
我需要修复此方法以某种方式更新只有这个数据库字段我需要和休息必须解开,但在这种情况下,我成功地作出了例如字段'名称'这个更新字段名称由特殊Id的变化,但其余的UserData列被覆盖为NULL,
有人可以键入我的一些建议如何修改此方法?或者可以基于这种情况下,导致仅更新这个领域我想更新写自己的方法,而不是休息到数据库NULL, 感谢很多关于你的帖子及回复, 欢呼声,是因为在
你可以尝试从数据库中提取'UserData'而不是创建新的'UserData'。 – 2013-03-06 17:05:17
嗯,你能不能澄清我这个?我尝试只更新单个字段,但上面的方法也会将其余的字段重写为null,例如我想更新名称,其他属性也正在更新,但空,不知何故需要更新只有单个字段,不知道如何 – ViliDuarte1 2013-03-06 18:03:10
@ ViliDuarte1你如何绑定你的数据库字段?你能展示一些jsf,hibernate-mapping文件的片段吗? – 2013-03-06 18:59:24