JPA a thing有insert table A的语句,delete table B的语句,insert和delete的语句都打印在日志中,但有时insert和delete都生效,有时insert生效,delete不生效,整个方法无错误,insert和delete语句都打印出来
代码如下
// 入库
cmsCa.setExpirationDate(new Date());
cmsCa.setDeleted(true);
CmsCaCanceled cmsCaCanceled = cmsCaMapper.convertToCmsCaArchive(cmsCa);
cmsCaArchiveRepository.save(cmsCaCanceled);
cmsCaRepository.delete(cmsCa);
CmsCaOperationLog cmsCaOperationLog = CmsCaOperationLog.build(CERT_OPER_CANCEL, cmsCa, true);
cmsCaOperationLogRepository.save(cmsCaOperationLog);
字符串
保存方法成功,删除失败,未报告错误
我的猜测是,JPA自动更新与同时执行delete有关,但set语句也有这个问题
1条答案
按热度按时间eaf3rand1#
我看了一下我的日志principle,发现在我删除后不久,出现了一个insert语句,再看日志的内容,发现在别的地方有一个Sava语句,一开始没有删除,后来保存了,JPA的保存方法是如果数据不存在就insert,如果数据存在就update