通过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 如何实现?

...全文
341 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
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)

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧