sql >> Databasteknik >  >> RDS >> Mysql

Hibernate OnDelete Cascade fungerar inte för MySql men fungerar på postgres och Ms-Sql

Det här är vad jag gjorde för att lösa det här problemet baserat på Spring Boot.

Lösning

från

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

till

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

Förklaring
Som du kan se nedan verkar det som att standardvärdet för CascadeDelete på MySQL5InnoDBDialect.java endast stöder Cascade.

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

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



  1. Är "Where IN" med flera kolumner definierade i Standard SQL?

  2. ListView Control Tutorial-02

  3. PÅ DUBLIKATKEY + AUTO ÖKNING utfärda mysql

  4. Tips för att lagra PostgreSQL-säkerhetskopior på Amazon AWS