通过Hibernate 如何插入一个查询?insert into tablename1(...) select ... from tablename2

yzyun 2005-05-23 11:21:53
通过Hibernate 如何插入一个查询?

我要将tablename2中符合某些条件的记录插入到tablename1中,
普通的sql语句是:
insert into tablename1(...) select ... from tablename2 where...
通过Hibernate 如何实现?

...全文
327 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cutelion 2005-05-31
学习.
  • 打赏
  • 举报
回复
zjjsgwm 2005-05-31
update最主要的是你的where条件啦。你既然已经取得了100这条记录了。当然id也取得了。
(建议是取得唯一主键作为条件。)
  • 打赏
  • 举报
回复
yzyun 2005-05-23
实际上是同一个表,
实际业务是个冲销的操作:
比如入库表中有条入库量为100的入库记录,
进行冲销,插入一条入库量为-100的记录,
同时更改原记录的某个标志字段。
所以操作的同一个表。
是执行session.createQuery(Hql); 吗?
Hql即:insert into entity1(a,b,c) (select a,b,-c from entity1 where xx) ?
update呢?
  • 打赏
  • 举报
回复
querlang 2005-05-23
hibernate的查询语音是hql,它基于对象的,所以如果两个表的结果是一样的话最简单,直接session.save(表2(结果1)),其中结果1是从表1中查询出来的数据对象,经过类型转换直接保存即可;如果两个表的结果不一样,只能从表一的查询结果中把值一个一个赋给一个新的表2对象然后插入了
  • 打赏
  • 举报
回复
treeroot 2005-05-23
应该可以吧,没有试过

insert into entity1(a,b,c) (select d,e,f from entity2 where xx)
  • 打赏
  • 举报
回复
相关推荐
发帖
Java EE

6.7w+

社区成员

J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
帖子事件
创建了帖子
2005-05-23 11:21
社区公告
暂无公告