hibernate里面发了update语句但是数据库就是不更新
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hibernate里面发了update语句但是数据库就是不更新相关的知识,希望对你有一定的参考价值。
Hibernate: update FFCONFIGURE set CONFIGUREVALUE=? where CONFIGUREID=?
这个语句已经发出去了,但是数据库就是没能更新请问是怎么回事啊?
代码
public void updateParameter(final String configureid, final String configurevalue) throws Exception
getHibernateTemplate().execute(new HibernateCallback()
public Object doInHibernate(Session session)
throws HibernateException
String hql = "UPDATE Ffconfigure SET configurevalue=? WHERE configureid=?";
Query q = session.createQuery(hql);
q.setString(0, configureid);
q.setString(1, configurevalue);
q.executeUpdate();
return null;
);
要改成这样就行了
public void updateParameter(final String configureid, final String configurevalue) throws Exception
getHibernateTemplate().execute(new HibernateCallback()
public Object doInHibernate(Session session)
throws HibernateException
Transaction tran = session.beginTransaction();//启动事务
String hql = "UPDATE Ffconfigure SET configurevalue=? WHERE configureid=?";
Query q = session.createQuery(hql);
q.setString(0, configureid);
q.setString(1, configurevalue);
q.executeUpdate();
tran.commit();//提交事务
return null;
);
本回答被提问者采纳
hibernate 级联删除
hibernate的级联删除似乎都是在主表的数据删除后,副表相关的字段被清除掉,请问,能不能在主表的数据删除后,副表的整条数据被删除掉,也就是说以前执行的是一个UPDATE,一个DELETE语句,现在要执行2个DELETE语句
主表usergroup 副表usergroup_authority 一对多关系
这个是现在打印出来的语句:Hibernate: update
ids.dbo.usergroup_authority set usergroup_id=null where usergroup_id=?
Hibernate: delete from ids.dbo.usergroup where usergroup_id=?
我想变成这样:Hibernate: delete from ids.dbo.usergroup_authority where usergroup_id=?
Hibernate: delete from ids.dbo.usergroup where usergroup_id=?
能不能用HIBERNATE配置解决?
1.在父端的one-to-one/many-to-one关系:设置cascade=”delete”或cascade=”all”。
2.在父端的one-to-many关系(map, set, list, bag):设置cascade=”all-delete-orphan”或cascade=”all”。
即可。 参考技术A 你在Service方法中,在加一句,dao.delete(object)不就得了,
不能,人家吧关联属性给你cascade成null已经算很牛了,还要咋地啊 参考技术B 你在set标签配置里面加上属性cascade="all" inverse="false" <!-- inverse 是否放弃对级联对象的控制 默认false不放弃控制 --> 测试一下 应该不行的,目前还没找好好的解决办法 参考技术C 在一对多的getter()方法前面加上@Cascade(CascadeType.DELETE_ORPHAN)
以上是关于hibernate里面发了update语句但是数据库就是不更新的主要内容,如果未能解决你的问题,请参考以下文章
hibernate在Oracle中插入数据,默认字段被设置为null的问题解决