Hibernate не генерирует каскад
у меня есть набор hibernate.hbm2ddl.auto
создать так, чтобы Hibernate создавал таблицы в mysql для меня.
однако, похоже, что hibernate правильно добавляет Cascade
о ссылках в таблице. однако он работает, когда я, например, удаляю строку, и у меня есть каскад удаления как Hibernate annotation. Итак, я предполагаю, что это означает, что Hibernate читает раздражение во время выполнения и выполняет каскадирование вручную?
это нормально поведение?
например:
@Entity
class Report {
@OneToOne(cascade = CascadeType.ALL)
public File getPdf() {
return pdf;
}
}
здесь я установил cascade для всех. Однако при запуске show create table Report
Report | CREATE TABLE `Report` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`pdf_id` bigint(20) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `FK91B14154FDE6543A` (`pdf_id`),
CONSTRAINT `FK91B14154FDE6543A` FOREIGN KEY (`pdf_id`) REFERENCES `File` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
он ничего не говорит о каскадировании другого, чем внешний ключ. На мой взгляд, он должен был добавить ON DELETE CASCADE ON DELETE UPDATE
1 ответов
на CascadeType
и @Cascade
определения не переведенные в DDL, они говорят Hibernate, как вести себя при выполнении операции.
@OnDelete
что вы можете использовать на родителе, чтобы получить внешний ключ, созданный с соответствующим предложением on delete cascade.