Я пытаюсь выяснить это отображение, и каким-то образом оно просто ускользает от меня. Это раздражает, потому что кажется, что это должно быть обычным делом.
У меня есть базовый класс Parent и Child с таблицей соединений между ними. Дочерний класс зависит от Родителя: если Дочерний удален из Родителя, Дочерний также должен быть удален. Документы Hibernate говорят, что это работает, указав cascade = "all, delete-orphan".
Но схема этого не позволяет. Если я использую <один-ко-многим>, я не могу указать столбец, и объединение не будет работать. Если я использую для документов Hibernate, я не могу указать каскад.
Вот то, что у меня сейчас есть, взято из документов Hibernate :
<class name="Parent" table="parent_table">
<id name="id" column="id">
<generator class="assigned"/>
</id>
<property name="name" type="string"/>
<list table="my_join_table" name="children">
<key column="parent_id"/>
<list-index column="idx">
<!-- how do I put a cascade on this!? -->
<many-to-many column="child_id"
class="Child"
unique="true"/>
</list>
</class>
<class name="Child" table="child_table">
<id name="id" column="id">
<generator class="assigned"/>
</id>
<property name="name" type="string"/>
<join table="my_join_table" inverse="true" optional="false">
<key column="child_id"/>
<many-to-one name="parent" column="parent_id" not-null="true"/>
</join>
</class>