我使用MYSQL,我有员工表,包含
Employee {
id,
name,
tel,
dayOfBirth,
manager_id
}
并且管理器引用了employee id,manager_id和id之间存在数据库关系
我创建了实体类,并按如下方式放置关系:
@ManyToOne(cascade = CascadeType.REFRESH, optional = false, fetch = FetchType.EAGER)
@JoinColumn(name="manager_id", nullable=true,insertable=false,updatable=true)
private Employee manager;
如果他有员工,我需要阻止删除经理。
请帮助你。答案 0 :(得分:1)
主要方法是在SQL架构中添加限制。
PRIMARY KEY (ID) ,
FOREIGN KEY (MANAGER_ID) REFERENCES EMPLOYEE(ID)
ON DELETE NO ACTION ON UPDATE NO ACTION
在JPA中,您可以使用@PreDestroy
进行检查public class Employee {
@PreDestory
public void preDestroy()
( !getEmployees().isEmpty()) {
// handle it
}
}
}
答案 1 :(得分:0)
我有解决方案,将引擎指定为innodb的解决方案如下:
ENGINE = INNODB
全部谢谢