Mysql
 sql >> Database >  >> RDS >> Mysql

Hibernate OnDelete Cascade non funziona per MySql ma funziona su postgres e Ms-Sql

Questo è ciò che ho fatto per risolvere questo problema sulla base di Spring Boot.

Soluzione

da

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

a

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

Spiegazione
Come puoi vedere di seguito, sembra che il valore predefinito per CascadeDelete su MySQL5InnoDBDialect.java supporti solo Cascade.

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

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