Отношение Hibernate OneToOne позволяет сохранить несколько ссылок - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть класс Letter:

@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
class Letter {
    @OneToOne(fetch = FetchType.LAZY, mappedBy="request", targetEntity=Letter)
    Letter response;

    @OneToOne(fetch = FetchType.LAZY)
    Letter request
}

и два его подкласса:

class LetterIn extends Letter {
}

class LetterOut extends Letter {
}

Идея состоит в том, чтобы сохранять экземпляры LetterIn в полях "response" и "request" из LetterOutэкземпляры и наоборот: экземпляры LetterOut в полях «response» и «request» экземпляров LetterIn.

К сожалению, Hibernate позволяет мне сохранять несколько экземпляров класса LetterOut с полями «request», заполненными одним и тем же экземпляром класса LetterIn..

Таким образом, в базе данных есть несколько объектов LetterOut, ссылающихся на один и тот же объект LetterIn.Затем я пытаюсь загрузить объекты LetterIn и получить сообщение об ошибке:

More than one row with the given identifier was found: %ID%, for class: Letter

Что я должен сделать, чтобы предотвратить такие ситуации?

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