我做了一个具有更多关系的小型应用程序。现在,我想删除表格的详细信息,如何删除我没有删除任何想法。
关系如下:
PanCard->员工(Ono To One) Employee-> ProjectManger(与员工的双向多对一关联) 项目-> ProjectManager(与项目的双向多对一关联)
PanCard->员工(Ono To One)
Employee-> ProjectManger(与员工的双向多对一关联)
项目-> ProjectManager(与项目的双向多对一关联)
现在我要删除一张一张的表数据
以下是我的POJO类代码:
@Id @GeneratedValue(strategy=GenerationType.IDENTITY) @Column(name="id") private int id; @Column(name="pName") private String pName; @Column(name="pNumber") private int pNumber; @OneToOne(cascade=CascadeType.ALL,fetch=FetchType.EAGER) @JoinColumn(name="EId") private Employee employee;
@Id @GeneratedValue(strategy=GenerationType.IDENTITY) @Column(name = "id") private int id; @Column(name = "empFirstName") private String empFirstName; @Column(name = "empLastName") private String empLastName; @Column(name = "empDepartment") private String empDepartment; @ManyToOne(cascade=CascadeType.ALL, fetch=FetchType.EAGER) @JoinColumn(name="pmId") private ProjectManager projectManager;
@Id @GeneratedValue(strategy=GenerationType.IDENTITY) private int id; private String department; private String managerFirstName; private String managerLastName; //bi-directional many-to-one association to Myemployee @OneToMany(mappedBy="projectManager",cascade = CascadeType.ALL) private List<Employee> employee; @OneToMany(mappedBy="projectManager",cascade = CascadeType.ALL) private List<Projects> projects;
@Id @GeneratedValue(strategy=GenerationType.IDENTITY) @Column(name="id") private int id; @Column(name="projectName") private String projectName; @Column(name="projectDesc") private String projectDesc; @ManyToOne(cascade=CascadeType.ALL, fetch=FetchType.EAGER) @JoinColumn(name="pmId") private ProjectManager projectManager;
现在,我要删除表数据:应该从哪个表开始删除。
Pancard
ProjectManager
Employee
Projects
PanCard
ProjectManger
因此,我必须从哪里开始删除,以及如何删除不知道的对象。
您可以开始从任何喜欢的表中删除。但是,如果要为此使用JPA,则必须防止约束冲突。您可以通过
要阐明关系映射:
Project
一般建议-不要从多方面使用级联。结果大多不是您想要的- 违反约束。如果删除Employee,则删除内容将级联到ProjectManager。由于一个经理可以有多个雇员,因此Employee将违反表中的外键约束。所以我会从删除级联Employee到ProjectManager。