PersistenceException - org.hibernate.exception.ConstraintViolationException бросается, когда многократные отношения @OneToMany с той же самой сущностью - PullRequest
1 голос
/ 25 сентября 2019

В моем приложении я получаю org.hibernate.exception.ConstraintViolationException, когда я включаю 2 или более списков одной и той же сущности (отношения @OneToMany) в один класс.

    @Embeddable
    data class DocPresentation(

            @OneToMany(cascade = [CascadeType.ALL])
            var billOfLadingComments: List<Comment>?,


            @OneToMany(cascade = [CascadeType.ALL])
            var invoiceComments: List<Comment>?,

            ...

    @Entity
    @Table(name = "Comment")
    data class Comment(

            @Column(name = "date")
            var date: Date?,

            @Column(name = "message")
            var message: String?,

            @Embedded
            var sender: Company?

    ) {
        constructor() : this(null, null, null)

        @Id
        @GeneratedValue
        @Column(name = "database_id")
        var databaseId: Int? = null
    }

Отношение является однонаправленным, поэтому создается промежуточная таблица, которая содержит идентификаторы связанных объектов.В этом случае он включает идентификатор объекта встраивания DocPresentation и 2 столбца: billOfLadingComments_database_id и invoiceComments_database_id.Когда я комментирую один из списков, приложение работает правильно.Как я могу разрешить исключение?

1 Ответ

0 голосов
/ 26 сентября 2019

Вы пытались настроить эти два отношения с помощью аннотации JoinTable?Посмотрите -> JPA "@JoinTable" аннотация .

...