-3

我必须这样做:假设:

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();

也不起作用。

4

3 回答 3

1

session.beginTransaction();

SQLQuery query=session.createSQLQuery("更新海报集 userid='"+userid+"' where posterid='"+posterid+"' ");
查询.executeUpdate();

session.getTransaction().commit();

于 2013-04-18T08:13:23.850 回答
0

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

您有不同的方法来执行此操作,具体取决于您的执行上下文。

尝试NobodyElse 方法或@Transactional为您的方法添加注释

于 2013-04-18T10:09:15.123 回答
-1

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

有提交事务的问题。

于 2013-04-23T06:50:40.207 回答