Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Hibernate OnDelete Cascade funktioniert nicht für MySql, funktioniert aber auf Postgres und Ms-Sql

Folgendes habe ich getan, um dieses Problem basierend auf Spring Boot zu lösen.

Lösung

von

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

zu

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

Erklärung
Wie Sie unten sehen können, scheint der Standardwert für CascadeDelete bei MySQL5InnoDBDialect.java nur Cascade zu unterstützen.

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

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