Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Hibernate OnDelete Cascade tidak berfungsi untuk MySql tetapi Bekerja pada postgres dan Ms-Sql

Inilah yang saya lakukan untuk menyelesaikan masalah ini berdasarkan Spring Boot.

Solusi

dari

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

untuk

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

Penjelasan
Seperti yang Anda lihat di bawah, sepertinya nilai default untuk CascadeDelete di MySQL5InnoDBDialect.java hanya mendukung 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. Bagaimana cara memperbarui kaskade di MySQL?

  2. Tidak dapat menginstal mysql-connector-python di virtualenv

  3. Perintah Laravel berdasarkan hubungan hasmany

  4. Cara terbaik untuk menangani penyimpanan/menampilkan tanggal di zona waktu yang berbeda di PHP?

  5. Lulus indeks ke tabel sementara dari tabel biasa?