У меня есть набор hibernate.hbm2ddl.auto
, чтобы создать Hibernate для создания таблиц в mysql для меня.Hibernate не генерирует каскад
Однако, похоже, что спящий режим правильно добавляет Cascade
к ссылкам в таблице. Однако это работает, когда я, например, удаляю строку, и у меня есть каскад delete как аннотация hibernate. Поэтому я предполагаю, что это означает, что Hibernate читает аннотацию во время выполнения и выполняет каскадирование вручную?
Это нормальное поведение?
Например:
@Entity
class Report {
@OneToOne(cascade = CascadeType.ALL)
public File getPdf() {
return pdf;
}
}
Здесь я поставил каскад для всех. Однако, при работе 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