<update id="updateDebtTimer" parameterType="com.jhd.entity.Debt" >
update a_debt
<set >
<if test="ruserid.id != null" >
ruserid = #{ruserid.id,jdbcType=INTEGER},
</if>
<if test="ruserdebtid.id != null" >
ruserdebtid = #{ruserdebtid.id,jdbcType=INTEGER},
</if>
<if test="matchtime != null" >
matchtime = #{matchtime,jdbcType=VARCHAR},
</if>
<if test="matchmoney != null" >
matchmoney = #{matchmoney,jdbcType=DOUBLE},
</if>
<if test="ischange != null" >
ischange = #{ischange,jdbcType=INTEGER},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
java代碼
public void updateDebtEndForIschange(){
String buserDate = Util.getTimeDay();
//查詢今天過期的 中間所有債權Buser
Map<String, Object> buserNewDayMap= new HashMap<String, Object>();
buserNewDayMap.put("buserDate",buserDate);
List<Buser> buserList = buserMapper.buserNewDayList(buserNewDayMap);
if(buserList.size() > 0){
//修改 債權有分配的Debt
for (Buser buser : buserList) {
Map<String, Object> creditorDebtMap= new HashMap<String, Object>();
creditorDebtMap.put("borrowid",buser.getId());
List<Debt> debtList = debtMapper.findCreditorDebtTimer(creditorDebtMap);
for (Debt debt : debtList) {
debt.setIschange(1);
debtMapper.updateDebtTimer(debt);//更新被替換的debt的ischange為1
System.out.println("---------更新被替換的debt ischange");
}
}
}
}
異常信息
[org.mybatis.spring.SqlSessionUtils]Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7bbc8afc]
[org.mybatis.spring.SqlSessionUtils]Fetched SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7bbc8afc] from current transaction
[org.mybatis.spring.SqlSessionUtils]Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7bbc8afc]
[org.springframework.jdbc.datasource.DataSourceTransactionManager]Should roll back transaction but cannot - no transaction available
[org.mybatis.spring.SqlSessionUtils]Transaction synchronization closing SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7bbc8afc]
[org.springframework.jdbc.datasource.DataSourceUtils]Returning JDBC Connection to DataSource
到這里就一直卡住不動了。斷點調試的時候,會跳到 InvocationTargetException異常里面去。
debtMapper.updateDebtTimer(debt);//更新被替換的debt的ischange為1 在這里就彈出錯誤,就不動了。
我的是前面修改xml的時候,字段名寫錯了,一直沒找到原因,網上也很多寫的東西,大多都是把英語說明翻譯出來,根本解決不了問題。
后來我慢慢查看,就發現有個字段的名字在 數據庫,xml和Bean里面不一致,后來改一致就OK了。