hibernate的一个字查询

jinlibing110 2008-04-11 02:33:21

private void updateSyncKnStatus() {
String queryStr = " update games_sync_kn kn set kn.sync_status = 'E' "
+ " where kn.sync_id in ( "
+ " select sync_id from ( "
+ " select distinct l.sync_id, "
+ " count(l.sync_id) over (partition by l.sync_id) synccount "
+ " from games_sync_kn_log l "
+ " ) where synccount>9 ) " ;
Log.debug("queryStr = "+ queryStr);
try{
org.hibernate.Query query = SessionFactoryUtils.getSession(
getSessionFactory(), true).createSQLQuery(queryStr);
query.executeUpate();

}catch(Exception e){
Log.debug("updateSyncKnStatus = "+e.getMessage());
}finally {
session.close();
}


error Update queries only supported through HQL

各位,请求你们的帮助,上面是提示信息,代码如上,thanks.
...全文
468 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dones 2009-06-24
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 jinlibing110 的回复:]
sql语句拆开,先查询一次再update一次也就是两个sql

[/Quote]

具体。。。
jinlibing110 2008-05-15
  • 打赏
  • 举报
回复
sql语句拆开,先查询一次再update一次也就是两个sql
loaferwang 2008-05-12
  • 打赏
  • 举报
回复
今天我的遇到了这样的事,我的比你的悬呀,我用java main去实现,可以完成,可是当我用在struts 里时,就出现了这种Update queries only supported through HQL 报错,我也没有找到原因所在,你所说的,把SQL 改写成
两个,可以实现,怎么难道说hibernate 还分长短不行之说,不明天呀,还得继续处理呀!
jinlibing110 2008-04-11
  • 打赏
  • 举报
回复
最后终于解决,用两次sql解决.............
langongkun 2008-04-11
  • 打赏
  • 举报
回复
你的这个类继承HibernateDaoSupport就行。
jinlibing110 2008-04-11
  • 打赏
  • 举报
回复
天生愚钝,愿闻其详,qq:404124281
jinlibing110 2008-04-11
  • 打赏
  • 举报
回复
try,thanks
langongkun 2008-04-11
  • 打赏
  • 举报
回复
this.getHibernateTemplate().getSessionFactory().getCurrentSession().connection();然后用这个连接操作。
jinlibing110 2008-04-11
  • 打赏
  • 举报
回复
如果我想用原生的这种sql可以怎么做???
langongkun 2008-04-11
  • 打赏
  • 举报
回复
应该写HQL语句吧

67,538

社区成员

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

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