我总是收到约束错误
引起:java.sql.BatchUpdateException:ORA-00001:违反唯一约束
每当我尝试调用一个同步方法时,该方法在其主键由 HBM 生成的表中插入一个值:
<id name="logId" type="java.lang.Long">
<column name="LOG_ID" precision="20" scale="0" />
<generator class="sequence">
<param name="sequence">TRANS_LOG_ID</param>
<param name="allocationSize">100</param>
</generator>
</id>
这是线程调用的方法:
public synchronized static void saveTransLog(String detail, String stage) {
TransLog transLog = new TransLog();
transLog.setDetail(detail);
transLog.setStage(stage);
...
TransLogService.save(transLog);
}
我想知道对于这些类型的多线程场景是否有更可靠的锁处理。或者我需要添加一些东西来解决我的约束违规问题。
非常感谢。