hibernate 查询结果 修改后 原表插入 如何实现

snake841026 2011-03-17 09:34:10
假设有一table
p{
int id;
int step;
int year;
varchar name;
……
}
执行query = s.createQuery(from p where step=2 and year=2011);
然后把查询结果数据中的 step 设置成3后,重新插入表p
该如何操作。

...全文
76 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
snake841026 2011-03-18
我已经找到解决方法了,就是5楼的方法。
查询数据放在list中,遍历过程中新建p,通过copy对象的方法(用cglib里的beancopier),将查询结果的各属性复制到p的对应属性中,然后将id置为null,step设置为3,再save。
查询结果直接id设置为null,step设置为3,再insert可能不行。(没试过,因为查询出来的对象是持久状态,估计不行)
回复
hepeng_8 2011-03-17
from p where step=2 and year=2011
这样的hql可以吗??
我没用过这样的
回答下
回复
luman2002 2011-03-17
[Quote=引用 2 楼 snake841026 的回复:]
hibernate 查询结果 修改后 原表插入
是原表插入 ,不是原表更新
[/Quote]
修改后用.save()方法
回复
zn85600301 2011-03-17
[Quote=引用 4 楼 zn85600301 的回复:]

你insert 不就行了
[/Quote]
写一个copy 对象值的通用方法
或者简单的直接将ID主键 设为null 然后insert
回复
zn85600301 2011-03-17
你insert 不就行了
回复
luman2002 2011-03-17
[Quote=引用 1 楼 zn85600301 的回复:]
将你得到的对象P的 p.setStep(3) 最后update(p)
[/Quote]
+1
回复
snake841026 2011-03-17
hibernate 查询结果 修改后 原表插入
是原表插入 ,不是原表更新
回复
zn85600301 2011-03-17
将你得到的对象P的 p.setStep(3) 最后update(p)
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2011-03-17 09:34
社区公告
暂无公告