У меня есть набор hibernate.hbm2ddl.auto
для создания, чтобы Hibernate создавал таблицы в mysql для меня.
Однако, похоже, что hibernate правильно не добавляет Cascade
к ссылкам в таблице. Однако это работает, когда я, например, удаляю строку, и у меня есть каскад удаления в виде спящего аннотации . Поэтому я предполагаю, что это означает, что 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