在Hibernate中使用SQLQuery更新查询

时间:2013-04-18 08:03:34

标签: hibernate

我必须这样做: 假设:

int posterid=100;
int userid=5;

SQLQuery query=session.createSQLQuery("update poster set userid='"+userid+"' where posterid='"+posterid+"' ");
query.executeUpdate();

它不起作用,如果我写:

SQLQuery query=session.createSQLQuery("update poster set userid=:userid where posterid=:posterid ");
query.setParameter("userid",userid);
query.setParameter("posterid",posterid);

query.executeUpdate();

也不行。

3 个答案:

答案 0 :(得分:1)

<强> session.beginTransaction();

SQLQuery query = session.createSQLQuery(“update poster set userid ='”+ userid +“'where posterid ='”+ posterid +“'”);
query.executeUpdate();

<强> session.getTransaction()提交();

答案 1 :(得分:0)

如何检索会话对象? 您必须确保更新查询在未标记为只读的事务中运行。

根据您的执行情况,您可以采用不同的方式执行此操作。

尝试NobodyElse方法或将@Transactional注释添加到方法

答案 2 :(得分:-1)

我已经纠正了这个问题。现在工作正常。

存在提交交易的问题。