我必须这样做: 假设:
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();
也不行。
答案 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)
我已经纠正了这个问题。现在工作正常。
存在提交交易的问题。