すべてのテーブルが Java JPA/Hibernate コードによって生成されたデータベースがあります。これと同様の方法で、データベース内のいくつかのテーブルを更新する必要があります。
UPDATE Department SET id=100000 WHERE id=0;
残念ながら、これはエラーになります
エラー 1451 (23000): 親行を削除または更新できません: 外部キー制約が失敗しました (departmentuserlink, CONSTRAINT FK96AF44EAB09C41C5 FOREIGN KEY (department_id) REFERENCES department (id))
Java エンティティは次のとおりです。
@Entity
@Table(name="Department")
public class Department extends AbstractEntity implements IAbstractEntity {
@OneToMany(cascade=CascadeType.ALL, mappedBy="department", fetch=FetchType.EAGER)
private Set<DepartmentJobLink> departmentJobs = new HashSet<DepartmentJobLink>(0);
//Setters & getters and all that
}
@Entity
@Table(name="edrDepartmentJobLink", uniqueConstraints={@UniqueConstraint(columnNames={"department_id", "job_id"})})
public class DepartmentJobLink extends AbstractEntity implements IAbstractEntity {
@ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name="department_id", nullable=false)
private Department department;
//Setters & getters and all that
}
どちらもスーパークラスに ID があります。これまでのところ、部門の主キーの更新で問題が発生しただけで、それらに関する他のすべてがうまく機能しているように見えます。アドバイスをいただければ幸いです。ありがとう。