У меня есть следующая структура в моей базе данных 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
Может кто-нибудь дать несколько указателей.