JPA / Hibernate OrderColumn без нуля или по умолчанию - PullRequest
0 голосов
/ 22 февраля 2019

Можно ли использовать JPA @OrderColumn с Hibernate, не делая столбец порядка обнуляемым или не устанавливая его по умолчанию?

У меня есть существующая база данных со столбцом последовательности, отображенным в давно существующем Hibernate 3.6-приложение на основе не JPA, и коллекция успешно отображается следующим образом:

<list name="requirements" table="MEDICAL_REQUIREMENT" cascade="all-delete-orphan" access="field">
    <key column="applicationId" not-null="true" />
    <list-index column="requirementIndex" />
    <one-to-many class="MedicalRequirement" />
</list>

Мы создаем API для доступа к той же базе данных, которая, вероятно, в конечном итоге заменит серверную часть существующего приложения,но в то же время они должны поделиться схемой.Я попытался воспроизвести сопоставление в эквивалентном JPA с помощью Kotlin:

@OneToMany(fetch = LAZY, cascade = [ALL], orphanRemoval = true)
@JoinColumn(name = "applicationId")
@OrderColumn(name = "requirementIndex", nullable = false)
private var _medicalRequirements = mutableListOf<MedicalRequirement>()

Кажется, что сопоставление в целом работает, но Hibernate (5.x) пытается записать запись медицинских требований без столбца заказа,затем (я полагаю, но я еще не видел его из-за сбоя) обновите порядок после факта.

Я могу понять простоту этого - сама сущность не знает о порядке, толькоРодительская коллекция знает порядок.Сказав это, я бы хотел использовать ту же схему без изменений, если смогу.Есть ли способ обойти это?

Я не нашел много дискуссий на эту тему, за исключением ошибки EclipseLink - EclipseLink, по-видимому, делает то же самое, хотя мне все равно, так как яиспользуя Hibernate.;)

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