sql >> Database >  >> RDS >> Mysql

Hibernate OnDelete Cascade werkt niet voor MySql maar werkt op postgres en Ms-Sql

Dit is wat ik deed om dit probleem op te lossen op basis van Spring Boot.

Oplossing

van

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

naar

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

Uitleg
Zoals je hieronder kunt zien, lijkt het alsof de standaardwaarde voor CascadeDelete op MySQL5InnoDBDialect.java alleen Cascade ondersteunt.

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

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



  1. Een gebruiker met bestaande privileges snel verwijderen

  2. PostgreSQL-agent opnieuw in SQL Standard-commissie

  3. Livechat met PHP en jQuery. Waar informatie opslaan? Mysql of bestand?

  4. Snapshots van SQL Server-database -3