J'ai un ensemble hibernate.hbm2ddl.auto
à créer pour que Hibernate crée les tables dans mysql pour moi.Hibernate ne génère pas de cascade
Cependant, il ne semble pas qu'hibernate ajoute correctement Cascade
sur les références de la table. Il fonctionne cependant quand je par exemple efface une rangée, et j'ai une cascade de suppression comme annotation d'hibernation. Donc, je suppose que cela signifie qu'Hibernate lit l'annotation à l'exécution et effectue une cascade manuellement?
Est-ce un comportement normal?
Par exemple:
@Entity
class Report {
@OneToOne(cascade = CascadeType.ALL)
public File getPdf() {
return pdf;
}
}
Ici, j'ai mis en cascade à TOUS. Cependant, lors de l'exécution 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 |
Il ne dit rien d'autre en cascade alors la clé étrangère. À mon avis, il aurait dû ajouter les ON DELETE CASCADE ON DELETE UPDATE