hibernate 向数据库中插入数据的问题????????????? 事务提交了么?打印SQL看看对不对. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 又是一个没有提交事务的问题,解决办法:1 提交事务2 保存操作后面写session.flush() 有时候就算sql打印出来了也插不进去肯定是事务没处理好把问题描述详细点比较好找错哦 只要session.commmit();就可以了因为commit方法就是先flush再commit! 就是不抛异常,好的,我把代码提出来:if (bankResults.get(0).getResult() == 1) { // 消账成功 log.debug(">>charge finish+bankResult.getResult()=" + bankResults.get(0).getResult()); record.setSystem("BSN"); record.setReturncode("success"); record.setTradefinishdate(new Date()); record.setTradestate(new Integer("5")); record.setPayserialnbr(new Long(bankResults.get(0).getPaySerialNbr()).toString()); PropertyConfigurator.configure(this.getClass().getResource("/").getPath() + "log4j-bsn-charge-update.properties"); Log bsnUpdateLogger = LogFactory.getLog(this.getClass()); try { syNetpayTraderecordsDao.update(record); //syNetpayTraderecordsDao.flush(); bsnUpdateLogger.info(record.getTradeno() + ":更新成功"); bsnUpdateLogger.info(bankResults.get(0)); } catch (Exception e) { bsnUpdateLogger.info(e.getMessage()); } finally { PropertyConfigurator.configure(this.getClass().getResource("/").getPath() + "log4j.properties"); } // 明细表 for (BsnBankChargeResult bankResult : bankResults) { log.debug("更新返回明细表"); TisyNetpayTraderecorddz recordeddz = new TisyNetpayTraderecorddz(); recordeddz.setCycleid(new Integer(bankResult.getCycleId()).toString()); recordeddz.setItemclass(bankResult.getItemClass()); recordeddz.setTotalfee(MoneyConvert.IntToDouble(bankResult.getServiceCharge())); recordeddz.setBalance(MoneyConvert.IntToDouble(bankResult.getBalance())); recordeddz.setPrepay(MoneyConvert.IntToDouble(bankResult.getPrePay())); recordeddz.setRecfee(MoneyConvert.IntToDouble(bankResult.getOldServiceCharge())); recordeddz.setTradeno(record.getTradeno()); syNetpayTraderecorddzDao.create(recordeddz); } }已经获取到"更新成功"这个信息了,但数据库没有记录. dwr在jetty服务器下报错 为什么写程序没有思路 用hibernate 加spring 插入不了数据 关于数据库里面的varbinary(8000)字段的问题? HTML 期末作业!帮忙看看不,一点思路也没有啊,大二新生 How to convert WebService SOAP response to java object? weblogic8.1不能部署MyEclipse开发的Enterprise Application? 求助!!!java workflow oracle和jdbc 站内搜索怎么写? 做了块一年j2ee,没事了,非软件公司,想跳到软件公司去
1 提交事务
2 保存操作后面写session.flush()
肯定是事务没处理好
把问题描述详细点比较好找错哦
就可以了
因为commit方法就是先flush再commit!
{ // 消账成功
log.debug(">>charge finish+bankResult.getResult()=" + bankResults.get(0).getResult());
record.setSystem("BSN");
record.setReturncode("success");
record.setTradefinishdate(new Date());
record.setTradestate(new Integer("5"));
record.setPayserialnbr(new Long(bankResults.get(0).getPaySerialNbr()).toString());
PropertyConfigurator.configure(this.getClass().getResource("/").getPath()
+ "log4j-bsn-charge-update.properties");
Log bsnUpdateLogger = LogFactory.getLog(this.getClass());
try
{
syNetpayTraderecordsDao.update(record);
//syNetpayTraderecordsDao.flush();
bsnUpdateLogger.info(record.getTradeno() + ":更新成功");
bsnUpdateLogger.info(bankResults.get(0));
} catch (Exception e)
{
bsnUpdateLogger.info(e.getMessage());
} finally {
PropertyConfigurator.configure(this.getClass().getResource("/").getPath() + "log4j.properties");
} // 明细表
for (BsnBankChargeResult bankResult : bankResults) {
log.debug("更新返回明细表");
TisyNetpayTraderecorddz recordeddz = new TisyNetpayTraderecorddz(); recordeddz.setCycleid(new Integer(bankResult.getCycleId()).toString());
recordeddz.setItemclass(bankResult.getItemClass());
recordeddz.setTotalfee(MoneyConvert.IntToDouble(bankResult.getServiceCharge()));
recordeddz.setBalance(MoneyConvert.IntToDouble(bankResult.getBalance()));
recordeddz.setPrepay(MoneyConvert.IntToDouble(bankResult.getPrePay()));
recordeddz.setRecfee(MoneyConvert.IntToDouble(bankResult.getOldServiceCharge()));
recordeddz.setTradeno(record.getTradeno()); syNetpayTraderecorddzDao.create(recordeddz);
}
}
已经获取到"更新成功"这个信息了,但数据库没有记录.