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;
}