奇怪现象!hibernate hql执行update不报异常,不执行

南山隐者 2012-03-23 05:37:40
    public void updateMapHistoryNPatrolObjByHQL(String flag,String jhxwguid)throws Exception{
Session session = this.getSession();
Transaction transaction = session.beginTransaction();
System.out.println("dao updateMapHistoryNPatrolObjByHQL come in...");//1
String hql = "update MapHistoryNPatrol set FLAG= '"+flag+"' where JHXWGUID = '"+jhxwguid+"'";
Query query = session.createQuery(hql);
System.out.println("dao updateMapHistoryNPatrolObjByHQL behind hql ...");//2
query.executeUpdate();
System.out.println("dao updateMapHistoryNPatrolObjByHQL was executed...");//3
transaction.commit();
}


代码如上,我想通过hibernate hql方式update 对象,执行过程中 到2就不执行了。
也就是说query.executeUpdate();开始(包含)往后就没有执行了。
控制台也不报异常,到底怎么回事?
诸位大侠帮帮忙......
...全文
521 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
tt584570 2012-04-10
  • 打赏
  • 举报
回复
query是查询的吧,update好像你直接把bean里的对象修改一下,调用session的update()就可以了啊
比如user.setName("xxxx");然后session.update(user)
VanBaston 2012-04-10
  • 打赏
  • 举报
回复
我记得hql好像没有update操作吧,更新的都是查出对象修改后在flush的吧
南山隐者 2012-03-25
  • 打赏
  • 举报
回复
肯定 try catch了,没有try catch习惯的程序员还不合格呢
[Quote=引用 11 楼 bill0605030109 的回复:]

不报异常?try catch看看。。
[/Quote]
  • 打赏
  • 举报
回复
不报异常?try catch看看。。
dryZeng 2012-03-23
  • 打赏
  • 举报
回复
在你对象映射文件里面用dynamic-update属性,设置为true,表示update对象的时候,生成动态的update语句,如果这个字段的值是null就不会被加入到update语句中,默认false
南山隐者 2012-03-23
  • 打赏
  • 举报
回复
update的问题是 会 更新所有的字段,我只更新 一个字段,这个样其它的字段都会置为空。
不知道有没有什么办法?
[Quote=引用 7 楼 a312983516 的回复:]

hql不能执行更新 用session的update方法
[/Quote]
quhuafeng521 2012-03-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 mystrjiang 的回复:]

引用 3 楼 creso 的回复:

Query。。是查询接口呀
如果要更新用session接口里的update方法

up
[/Quote]
你后面不是加where做限定了吗?怎么会全部更新呢。
a312983516 2012-03-23
  • 打赏
  • 举报
回复
hql不能执行更新 用session的update方法
一秒L 2012-03-23
  • 打赏
  • 举报
回复
Query query = session.createQuery(hql);我感觉到这句话就错了呢,

你打印一下this.session看是不是你要的啊
南山隐者 2012-03-23
  • 打赏
  • 举报
回复
我只想更新一个字段的值,update不会全部更新吧?
是不用update(String arg1,Objct obj)这个方法?
Stirng传的是hql语句,Object传入对象实力类吗?
[Quote=引用 4 楼 mystrjiang 的回复:]

引用 3 楼 creso 的回复:

Query。。是查询接口呀
如果要更新用session接口里的update方法

up
[/Quote]
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 creso 的回复:]

Query。。是查询接口呀
如果要更新用session接口里的update方法
[/Quote]
up
creso 2012-03-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hu_shengyang 的回复:]

对啊 ,update一个字段
引用 1 楼 creso 的回复:

Query query = session.createQuery(hql);
LZ用Query做变更吗。。。
[/Quote]
Query。。是查询接口呀
如果要更新用session接口里的update方法
南山隐者 2012-03-23
  • 打赏
  • 举报
回复
对啊 ,update一个字段
[Quote=引用 1 楼 creso 的回复:]

Query query = session.createQuery(hql);
LZ用Query做变更吗。。。
[/Quote]
creso 2012-03-23
  • 打赏
  • 举报
回复
Query query = session.createQuery(hql);
LZ用Query做变更吗。。。

67,515

社区成员

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

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