sql >> Databáze >  >> RDS >> Mysql

Hibernate OnDelete Cascade nefunguje pro MySql, ale funguje na postgres a Ms-Sql

To je to, co jsem udělal, abych tento problém vyřešil na základě Spring Boot.

Řešení

od

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

do

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

Vysvětlení
Jak můžete vidět níže, zdá se, že výchozí hodnota pro CascadeDelete na MySQL5InnoDBDialect.java podporuje pouze Cascade.

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

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



  1. Proč se mi zobrazuje 'Binární protokolování není možné.' na mém serveru MySQL?

  2. Android Sqlite při upgradu odstraňte tabulku z databáze

  3. Vraťte hodnotu null pro date_format, když je vstup v mysql null

  4. Jak správně vytvořit kompozitní primární klíče - MYSQL