Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Hibernate OnDelete Cascade không hoạt động cho MySql nhưng hoạt động trên postgres và Ms-Sql

Đây là những gì tôi đã làm để giải quyết vấn đề này dựa trên Spring Boot.

Giải pháp

từ

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

đến

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

Giải thích
Như bạn có thể thấy bên dưới, có vẻ như giá trị mặc định cho CascadeDelete tại MySQL5InnoDBDialect.java chỉ hỗ trợ 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. Cách CHÈN nếu hàng không tồn tại (UPSERT) trong MySQL

  2. Tham gia hai bảng trong Php

  3. Đặt giá trị thành NULL trong MySQL

  4. Phát hiện ký tự bị hỏng utf8 trong MySQL

  5. Cập nhật bảng MySQL từ một tệp cục bộ