Mysql
 sql >> Base de données >  >> RDS >> Mysql

Hibernate OnDelete Cascade ne fonctionne pas pour MySql mais fonctionne sur postgres et Ms-Sql

C'est ce que j'ai fait pour résoudre ce problème basé sur Spring Boot.

Solution

de

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

à

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

Explication
Comme vous pouvez le voir ci-dessous, il semble que la valeur par défaut de CascadeDelete sur MySQL5InnoDBDialect.java ne supporte que Cascade.

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

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