随笔-10  评论-66  文章-1  trackbacks-0
我有一张数据表USER,里面已有数据了,现在我只想更新这张数据表里的某个字段,不知有没有方法在hibernate可以像用SQL语句那样直接更新只想更改的字段,而不是先load出来再save? 如: 数据表USER create table user( id int primary key ,name varchar(20), age int); 代码 User user = new User(); user.setId(new Integer(1)); user.setName("name"); user.setAge(new Integer(21)); Session session = HibernateSessionFactory.getCurrentSession(); session.save(user); 当我去更新时, User user = new User(); user.setId(new Integer(1)); user.setName("name2"); Session session = HibernateSessionFactory.getCurrentSession(); session.update(user); 这时Age的值就变成了NULL了,我现在就想当我去更新时(不用先load出来),Age的值不会改变, 希望各位指点下,谢谢
posted on 2006-09-06 16:50 javadragon 阅读(3206) 评论(4)  编辑  收藏

评论:
# re: 用hibernate更新数据时出现的问题 2006-09-06 20:13 | 布衣郎
你用的是hibernate 2 还是 hibernate 3
如果是3的话
Session s= HibernateSessionFactory.getCurrentSession();

s.createQuery( "update user u set age= 1" ).executeUpdate();  回复  更多评论
  
# re: 用hibernate更新数据时出现的问题 2006-09-13 14:46 | javadragon
我用的是hibernate 3的,现在我每更新一次数据都要load一次,
如此一来,就会影响更新的效率,不知兄弟(布衣郎)有没有更好的方法  回复  更多评论
  
# re: 用hibernate更新数据时出现的问题 2006-09-15 17:11 | 安文豪
如果是Hibernate3的话,可以直接使用native sql 去实现你的要求。做法和普通的jdbc一样。如果不习惯。布衣郎 说的方法也是可行的!
  回复  更多评论
  
# 我是初学者 请高手写个完整的更新 2008-04-04 13:04 | keling
我是初学者 请高手写个完整的更新  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: