Tengo un conjunto de hibernate.hbm2ddl.auto
para crear para que Hibernate cree las tablas en mysql para mí.Hibernate no genera cascada
Sin embargo, no parece que Hibernate correctamente agrega Cascade
a las referencias en la tabla. Sin embargo, funciona cuando, por ejemplo, elimino una fila y tengo una cascada de eliminación como anotación de hibernación. Entonces, supongo que eso significa que Hibernate lee la molestia sobre el tiempo de ejecución y realiza una cascada en forma manual.
¿Es ese comportamiento normal?
Por ejemplo:
@Entity
class Report {
@OneToOne(cascade = CascadeType.ALL)
public File getPdf() {
return pdf;
}
}
Aquí he puesto en cascada a TODOS. Sin embargo, cuando se ejecuta 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 |
No dice nada acerca de cascada otro entonces la clave externa. En mi opinión, debería haber añadido los ON DELETE CASCADE ON DELETE UPDATE