我正在尝试执行一个存储过程,该过程将更新列并在更新后从同一表中检索文件名
StoredProcedure:
CREATE DEFINER=`test`@`%` PROCEDURE `update_count`(
IN in_testID VARCHAR(64),
OUT out_FileName VARCHAR(100),
OUT out_Message VARCHAR(100))
BEGIN
UPDATE files SET count=count+1 WHERE testID=in_testID;
SELECT FileName INTO out_FileName FROM files WHERE testID = in_testID;
SET out_Message = 'File updated uccessfully';
END
执行此StoredProcedure的JavaCode:
Query query = session.createSQLQuery("CALL update_count(:in_testID, @out_FileName, @out_Message)").addEntity(FilesBean.class)
.setParameter("in_testID",body.getTestId());
query.executeUpdate();
用query.executeUpdate()
更新了query.list()
。但是该行返回错误ResultSet is from UPDATE. No Data
我需要使用createSQLQuery来解决此问题
最简单的方法是将out参数作为返回参数的一部分返回(仅当您有权访问存储过程时才相关)。开玩笑地添加一个存储过程,如下所示