org.hibernate.exception.ConstraintViolationException при обновлении и вставке новых строк в мою модель данных - PullRequest
0 голосов
/ 27 мая 2019

У меня есть следующая структура в моей базе данных Oracle:

DO1:

@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, mappedBy = "DO1")
private Set<DO2> do2Set;

DO2 имеет ссылку на DO1, как показано ниже:

@JsonBackReference("name")
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "key", referencedColumnName = "key")
private DO1 do1;

Первичным ключом для обоих DO является автоматически сгенерированная последовательность:

@SequenceGenerator(name="SEQ",sequenceName="QTY_SEQ", allocationSize = 500)

В нашем случае использования мы добавляем новую строку в DO2, дублируя текущую строку, а также изменяя существующую строку. Что мы сделали, так это то, что мы клонировали POJO и затем установили ID в Null Теперь, когда мы обновляем это в БД, используя PUT, мы получаем следующую ошибку:

"org.hibernate.exception.ConstraintViolationException: could not execute statement", "embeddedExceptions": [{"message": "org.hibernate.exception.ConstraintViolationException: could not execute statement" }]}"

Error Msg = ORA-00001: unique constraint () violated\n\n\tat oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:498)\n\t... 50 more\n

Может кто-нибудь дать несколько указателей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...