0
を削除し、私は次のエンティティを持っている:カスケードは休止状態/春データに
@Entity
public class Car { ... }
@Entity
public class Driver {
@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name = "CAR_ID")
private Car car;
...
}
@Entity
public class Penalty {
@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name="D_ID")
private Driver driver;
...
}
私はDriver
とCar
がcarRepository.delete(car_id)
として削除されたときに削除Penalty
からすべての情報をしたいと思います。
WARN : org.hibernate.engine.jdbc.spi.SqlExceptionHelper - SQL Error: 1451, SQLState: 23000
ERROR: org.hibernate.engine.jdbc.spi.SqlExceptionHelper - Cannot delete or update a parent row: a foreign key constraint fails (`test`.`car_drivers`, CONSTRAINT `FK9ux9oqx6yr66cva4ro6l8m63r` FOREIGN KEY (`CAR_ID`) REFERENCES `cars` (`CAR_ID`))
ERROR: org.hibernate.internal.ExceptionMapperStandardImpl - HHH000346: Error during managed flush [org.hibernate.exception.ConstraintViolationException: could not execute statement]
ERROR: com.app.cars.controller.AdminController - Exception during deleting car due to could not execute statement; SQL [n/a]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement
テーブルの属性とデザインを変更することはできません。したがって、エンティティモデルを修正することによってこのエラーを取り除く必要があります。
問題は、ドライバーが車からアクセスできないことです。そのため、Carにはdriversという属性がありません。 – nlimits
なぜアクセスできないのですか?あなたは単にそれらを追加することができます。エンティティクラスは 'public'でなければならないので、どこからでもアクセスできます。 – manish