我正在从 Java 调用 mysql 存储过程,如下所示:
public void deleteMyProduct(final String country, final String someId) throws EntityDoesNotExistException {
getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(final Session session) {
session.clear();
Connection con = session.connection();
try {
CallableStatement cst = con.prepareCall("{call deleteProduct( ?, ? )}");
cst.setString(1 , country);
cst.setString(2 , someId);
cst.execute();
cst.close();
}
catch(SQLException e){
logger.error("Error deleting product, someId: "+ someId, e);
}
return null;
}
});
未成功删除产品;但是当我手动运行它时,它确实如此。知道问题出在哪里吗?
附:存储过程非常大并且包含可识别的信息,因此我无法随意发布它。然而,它已经生产了一段时间,直到最近才停止工作。
最佳答案
- 您确定代码正在执行吗?
- 变量
country
和someId
真的正确吗? SQLException
说什么?- 是否获得成功连接 -
Connection con = session.connection();
? - 您是否传递了正确类型的变量(是否应该发送
Int
而不是String
)?
关于java - mysql存储过程调用可以手动工作,但不能从java中调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28332456/