hql update

cc585325 2013-03-21 02:36:51
	String hql=" update  News news set news.del=0 where news.id in ("+idlist+")";
HibernateTemplate ht =this.getHibernateTemplate();
List<News> list=ht.find(hql);

这个语句怎么一直报错,刚接触Hibernate 求解。
这个语句的意思是 根据一个id串 批量修改。idlist="1,2";
...全文
201 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
cc585325 2013-03-21
  • 打赏
  • 举报
回复
是sql语句 , 问题在于 表名写错了, hibernate的给我们生成的表前面加了一个t_,表名应该为t_news.3q各位的回答!
huimiezu 2013-03-21
  • 打赏
  • 举报
回复
引用 11 楼 cc585325 的回复:
引用 10 楼 huimiezu 的回复:引用 9 楼 cc585325 的回复:@7楼 Java code?12345678int result=0; Session session=this.getHibernateTemplate().getSessionFactory().openSession(); try{ ……
还出问题的话,就是sql语法的问题
cc585325 2013-03-21
  • 打赏
  • 举报
回复
引用 10 楼 huimiezu 的回复:
引用 9 楼 cc585325 的回复:@7楼 Java code?12345678int result=0; Session session=this.getHibernateTemplate().getSessionFactory().openSession(); try{ result= session.crea……
恩, 谢谢你们的回答!我在看看去, 那上面那代码没错呢,怎么还是出了问题。
huimiezu 2013-03-21
  • 打赏
  • 举报
回复
引用 9 楼 cc585325 的回复:
@7楼 Java code?12345678int result=0; Session session=this.getHibernateTemplate().getSessionFactory().openSession(); try{ result= session.createSQLQuery("update N……
是sql,不是hql
cc585325 2013-03-21
  • 打赏
  • 举报
回复
@7楼
int result=0;
		Session session=this.getHibernateTemplate().getSessionFactory().openSession();
        try{
        	result= session.createSQLQuery("update News set del=0 where id in("+idlist+")").executeUpdate();
        }finally {
            this.releaseSession(session);
        }
        return result>0;
还是异常了,createSQLQuery这个方法的参数是sql 还是hql呀
cc585325 2013-03-21
  • 打赏
  • 举报
回复
@6楼, 我的ht对象找不到executeUpdate这个方法啊. 是不是hibernate版本的问题呢
huimiezu 2013-03-21
  • 打赏
  • 举报
回复
Session session=this.getHibernateTemplate().getSessionFactory().openSession();
		try{
		session.createSQLQuery("sql语句").executeUpdate();
		}finally {
			this.releaseSession(session);
		}
Artemis丶月 2013-03-21
  • 打赏
  • 举报
回复

String hql=" update  News news set news.del=0 where news.id in ("+idlist+")";
    HibernateTemplate ht =this.getHibernateTemplate(); 
    int ret=ht.executeUpdate(hql); //int返回是成功修改了多少条数据的数量
试试看吧
cc585325 2013-03-21
  • 打赏
  • 举报
回复
您能帮我写个吗,感激不尽, 我这是现炒现卖啊,参照几个例子写的,转做java才3天 hibernate3 api还没来得及去看。
  • 打赏
  • 举报
回复
应该是String hql=" update News news set news.del=0 where news.id in (:"+idlist+")"; 有个冒号的。
Artemis丶月 2013-03-21
  • 打赏
  • 举报
回复
还有一个错误时,Hql的类要写在""外面,你这样只是字符串,不是类
huimiezu 2013-03-21
  • 打赏
  • 举报
回复
find是查询,你要的是更新
Artemis丶月 2013-03-21
  • 打赏
  • 举报
回复
- -,你一个update语句,用find()方法?想想就知道错在哪

67,512

社区成员

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

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