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

Hibernate OnDelete Cascade no funciona para MySql pero funciona en postgres y Ms-Sql

Esto es lo que hice para resolver este problema basado en Spring Boot.

Solución

de

// application.properties  
spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect

a

spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect

Explicación
Como puede ver a continuación, parece que el valor predeterminado para CascadeDelete en MySQL5InnoDBDialect.java solo es compatible con Cascade.

// MySQLDialect.java
@Override
    public boolean supportsCascadeDelete() {
        return false;
    }

// MySQL5InnoDBDialect.java
@Override
    public boolean supportsCascadeDelete() {
        return true;
    }