CrudRepository#save(entity) に、最初にエンティティを選択して主キーが既に存在する場合に更新するのではなく、強制的に新しいエンティティを挿入させたいと思います。
例を挙げてみます
public class Lock
{
@Id
@Column
private UUID uuid;
...
}
UUID id = UUID.randomUUID();
Lock firstLock = new Lock(id);
Lock secondLock = new Lock(id);
repo.save(firstLock);
repo.save(secondLock);
最初の保存操作で次の 2 つのステートメントが実行されます。
Hibernate: select lock0_.uuid as uuid5_0_, lock0_.expires as expires5_0_ from locks lock0_ where lock0_.uuid=?
Hibernate: insert into locks (expires, uuid) values (?, ?)
save の 2 番目の呼び出しが update ステートメントを実行している間
Hibernate: select lock0_.uuid as uuid5_0_, lock0_.expires as expires5_0_ from locks lock0_ where lock0_.uuid=?
Hibernate: update locks set expires=? where uuid=?
save への 2 回目の呼び出しが以前に保存されたレコードを単純に更新しないようにするにはどうすればよいですか? 同じ主キーが既に存在するため、insert ステートメントを実行して失敗させたい