У меня есть следующая конфигурация 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
для моего варианта использования?