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

Hibernate OnDelete Cascade virker ikke for MySql, men virker på postgres og Ms-Sql

Dette er, hvad jeg gjorde for at løse dette problem baseret på Spring Boot.

Løsning

fra

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

til

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

Forklaring
Som du kan se nedenfor, ser det ud til, at standardværdien for CascadeDelete på MySQL5InnoDBDialect.java kun understøtter Cascade.

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

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



  1. 4 måder at konvertere et tal til en procentdel i SQL Server (T-SQL)

  2. Hurtigste måde at gentage en stor tabel ved hjælp af JDBC

  3. Sådan finder du SQL Server Agent-job i Azure Data Studio

  4. Indstil nøgle/værdipar i sessionskonteksten i SQL Server (sp_set_session_context)