【发布时间】:2017-09-26 12:49:45
【问题描述】:
我创建了一个更新数据库中的表行并在更新后返回特定字符串(例如“完成”)的过程,如果值未更新(例如“失败”),它将返回不同的响应。
从 MySQL 工具调用时,它会更新表并返回值作为响应
call LoginCheck('9111111114','AGGR001002','11d3ad9315b7be5dd53b31a273b3b3aba5defe700808305aa16a3062b76658a791','DIST001007');
但是,当我从 Java 代码调用相同的过程时,它会返回正确的响应,即“完成”,但是当我检查表格时,它似乎没有更新相应的表格行。
factory = DBUtil.getSessionFactory();
Session session = factory.openSession();
Transaction transaction = session.beginTransaction();
String status = "7000";
List objectList = null;
SQLQuery query = session.createSQLQuery("call LoginCheck(:userid,:AggId,:Password,:id)");
query.setString("userid", userid);
query.setString("AggId", AggId);
query.setString("Password", Password);
query.setString("id", id);
objectList = query.list();
我已经尝试过query.setParameter 和query.ExecuteUpdate()
如果我还有其他需要,请告诉我。
【问题讨论】:
-
您是否在程序配置中检查了 MySQL 数据源的自动提交设置?过程返回正确的值,但数据库没有更新,这表明事务没有提交。
标签: java mysql sql hibernate stored-procedures