java - 调试时遇到存储过程。但它不起作用(数据未插入数据库)
问题描述
这是我在mysql中调用存储过程的代码。
public void createWallet(String number) {
Query query= getSession().createSQLQuery("CALL createWalletForOrigin(:string_number)").addEntity(Wallet.class)
.setParameter("string_number", number);
}
听到的是我的存储过程
CREATE DEFINER=`root`@`localhost` PROCEDURE `createWalletForOrigin`(IN string_number varchar(19))
BEGIN
insert into wallet values(string_number,0);
END
我无法弄清楚为什么这没有执行。当我调试该方法调用成功。
解决方案
看起来你没有提交交易。
getSession().createSQLQuery(sql).executeUpdate();
getSession().getTransaction().commit();
在这里查看这个问题以获得更详细的解释。
推荐阅读
- java - 是否可以手动缓存整个网页?
- android - 位置侦听器始终返回 googpleplex 纬度和经度
- python - 为什么我的记分牌没有在 pygame 中更新?
- stm32 - 在QT中,当连接到STM32时,如何检测USB端口何时从串行模式切换到DFU
- json - 在另一个 json 中替换和添加 json
- netsuite - SuiteScript2.0 从保存的搜索公式列中获取值
- c++ - 如何用静态声明的不同大小的数组实例化一个类?
- ios - 键盘正在破坏 UICollectionView 的单元格
- python-3.x - TypeError: 'builtin_function_or_method' 和 'int' 的实例之间不支持'>='
- javascript - AngularJS:ui-select 将数据绑定回选择