Hibernate хранение OneToMany Map <String, Entity> с использованием XML завершается неудачно при каскадном удалении - PullRequest
0 голосов
/ 25 июня 2019

У меня есть следующая конфигурация Hibernate:

<class name="Person" table="persons">
    <map name="cars" cascade="all" table="PersonCars">
      <key>
        <column name="personId" index="IDX"/>
      </key>
      <map-key column="licensePlate" type="string"/>
      <one-to-many class="Car"/>
    </map>
</class>

<class name="Car" table="cars">
    ...
    <many-to-one name="owner" access="field" column="personId" class="Person" fetch="join" index="IDX_OWNER"/>
    <property name="licensePlate" type="string" not-null="true"/>
</class>

На стороне Java класс Person имеет поле cars типа Map<String, Car>. Все работает нормально, но я пытаюсь удалить тип Person, тогда я получаю Constraint violation exception, потому что Hibernate пытается обновить строку Car с licensePlate=null среди других.

Есть ли проблема с моими сопоставлениями или невозможно иметь not-null=true для моего варианта использования?

...