Я не специалист по холодному синтезу и призываю вас помочь, потому что я дергаю себя за волосы!
Я исключаю удаление сущности «Действие», которая имеет 2 отношения «один ко многим», «Тексты» и «Бонус».
Когда я пытаюсь удалить действие, в котором есть только тексты, но нет бонуса, все в порядке. Hibernate удаляет запись Action и дочерние тексты. Это то, что я хочу!
Но когда у Акции есть и тексты, и бонус, я получаю эту ошибку:
Column 'bonus_actionId' cannot be null
Root cause :java.sql.BatchUpdateException: Column 'bonus_actionId' cannot be null
Почему Hibernate не удаляет бонус перед удалением действия? Как это сделано для текстов?
Спасибо
Действие сущности:
component {
property name="id" column="action_id" type="numeric" fieldtype="id" generator="native";
/* ... */
property name="texts" type="array"
fieldtype="one-to-many" cfc="Text" fkcolumn="text_actionId" singularname="text"
cascade="all-delete-orphan" lazy="true";
/* ... */
property name="bonus" type="array"
fieldtype="one-to-many" cfc="Bonus" fkcolumn="bonus_actionId" singularname="bonus"
cascade="all-delete-orphan" lazy="true";
}
Текстовая сущность:
component {
property name="id" column="text_id" type="numeric" fieldtype="id" generator="native";
/* ... (properties without relationships */
property name="action" fieldtype="many-to-one" fkcolumn="text_actionId" cfc="Action" notnull="false" lazy="true";
}
Бонусная сущность:
component {
property name="id" column="bonus_id" type="numeric" fieldtype="id" generator="native";
/* ... (properties WITH relationships */
// Parent
property name="action" fieldtype="many-to-one" fkcolumn="bonus_actionId" cfc="Action" notnull="true" lazy="true";
}