0
После удаления 1 значения из уникального поля (Mysql) мне нужно переименовать остальных значения снова в одной транзакции: код:Исключения с помощью рамки Play JPA обновления уникального поля ограничения
JPA.withTransaction(new Callback0() {
@Override
public void invoke() throws Throwable {
obj.removeDevice(deviceID);
// if I put removeDevice in different transaction it works !
// but can cause integrity problem i case of failure
obj.changeTemporalDevices(...);
obj.reCalcDevicesNames(...);
obj.saveDevices(....);
}
});
Это кажется, что JPA «не видит», что значение было удален в одной транзакции и я получил ниже исключение:
[ERROR] org.hibernate.engine.jdbc.spi.SqlExceptionHelper - Duplicate entry 'aaa2r28c011' for key 'name_device_UNIQUE'
[ERROR] application - javax.persistence.RollbackException: Error while committing the transaction
java.lang.RuntimeException: javax.persistence.RollbackException: Error while committing the transaction
at play.db.jpa.JPA.withTransaction(JPA.java:111) ~[play-java-jpa_2.10-2.3.8.jar:2.3.8]
Спасибо! JPA.em() заподлицо(). решить проблему –
Затем вы можете отметить ответ как правильный. Спасибо. – Franck