7
我有一套hibernate.hbm2ddl.auto
创建,以便Hibernate在我创建MySQL的表。休眠不会产生级联
但是,休眠似乎并没有在表中的引用上正确添加Cascade
。 然而,当我例如删除一行,并且我有一个删除级联作为hibernate注释时,它确实有效。所以我想这意味着Hibernate在运行时读取annoation,并手动执行级联?
这是正常的行为吗?
例如:
@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