Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Hibernate OnDelete Cascade nie działa dla MySql, ale działa na postgres i Ms-Sql

Oto, co zrobiłem, aby rozwiązać ten problem w oparciu o Spring Boot.

Rozwiązanie

od

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

do

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

Wyjaśnienie
Jak widać poniżej, wygląda na to, że domyślna wartość CascadeDelete w MySQL5InnoDBDialect.java obsługuje tylko Cascade.

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

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapytanie SQL, aby uzyskać sumę wszystkich wartości kolumn w ostatnim wierszu zestawu wyników wraz z sumą wierszy (grupuj według)

  2. Schemat DB dla czatów?

  3. MySQL - jak długo tworzyć indeks?

  4. Jak przekonwertować czas UTC na czas lokalny w MySQL?

  5. Konwertowanie rozdzielanego ciągu na wiele wartości w mysql