sql >> Base de Datos >  >> RDS >> Mysql

JPA + Hibernate:cómo definir una restricción que tenga ON DELETE CASCADE

JPA ofrece la posibilidad de en cascada operaciones (combinar, persistir, actualizar, eliminar) a entidades asociadas. La lógica está en JPA y no utiliza cascadas de bases de datos.

@OneToMany(cascade=CascadeType.REMOVE)

No existe una forma compatible con el estándar JPA de hacer cascadas con cascadas de bases de datos. Si se prefieren tales cascadas, tenemos que recurrir a la construcción específica de Hibernate:@ Al Eliminar . Funciona con @OneToMany al menos, pero solía haber algunos problemas en el pasado con @OneToOne y @OnDelete .

@OnDelete(action = OnDeleteAction.CASCADE)

Tenga en cuenta que agregar esta anotación a una restricción existente no la actualizará. Es posible que primero deba soltarlo manualmente para actualizar correctamente el esquema.