常に制約エラーが発生します
原因: 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);
}
この種のマルチスレッド シナリオに対して、より信頼性の高いロック処理があるかどうかを知りたいです。または、制約違反を修正するために追加する必要があるものがありますか。
どうもありがとうございました。