你可以在执行完sql后面加上addentity方法
hibernate会自动封装
如果这个bean是没有xml配置文件的
那你只能去遍历这个list
构造bean
hibernate 3 :/**
*更新 *** 作..传入的user里 包含之前user的主键id 和现在新的数据 name edu gender
*先 按照id查出 hibernate中的 原数据 u ,然后给u 重新赋值,最后保存
*/
@Override
public boolean Update(UserEntity user) {
ComUserEntity u = getHibernateTemplate().get(UserEntity.class,user.getId())
u.setId(user.getId())
u.setName(user.getName())
u.setEdu(user.getEdu())
u.setGender(user.getGender())
getHibernateTemplate().saveOrUpdate(u)
return true
}
上述回答是错误的,Hibernate已经内置了部分字段更新机制,只是大家没有深入了解Hibernate的机制,说了很多关于Hibernate的不好,个人认为Hibernate比所谓的iBatis好过百倍。//说明: 这里修改密码实现的部分更新,而不是全部字段的更新。
//(1) 实现部分的更新方法是:
// 1) 从数据库中查询到实体。
// 2)将待更新数据字段设置到查询到实体上,执行save或update方法,则可实现部分字段。
// Account account = (Account) session.get(Account.class,accountID)
// account.setPassword("new password")
// session.update(account) //可实现部分更新
// session.save(account)//可实现部分更新
//(2)如何待更新的实现不是来源数据,则无法实现部分字段更新,如
// Account aaa = new Account()
// aaa.setPassword("new password")
// aaa.setAccountID(accountID)
// session.save(aa) //不可实现部分更新
// seesion.update(aa) //不可实现部分更新
//
//(3) 通过对象方式传递修改的参数
//
// Account sssAccount = new Account()
// sssAccount.setAccountID(accountID) //
// sssAccount.setPassword(password)//
//
// Account account = (Account) session.get(Account.class, accountID)
//
// DbUility.copyPropertiesIgnoreNull(sssAccount, account)
// session.update(account)
//
// 上述方式也可实现部分字段更新
// 注意,若拷贝前后account的password值不变,则不会更新该字段,对于accountID也是一样的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)