How to remove child or parent objects from a relationship?

I made a small application with a lot of relationships. Now I want to delete the details of my table, how can I delete, I do not get any idea to delete.

The relationship is as follows:

PanCard → Employee (Ono To One)

Employee → ProjectManger (bi-directional multi-user communication with Employee)

Projects → ProjectManager (bidirectional multicast communication with projects)

Now I want to delete data on one data table

Following are my POJO classes. Code:

Pancard.java

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

Employee.java

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

ProjectManager.java

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

Projects.java

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

Now I want to delete the table data: from which table should I start the deletion.

  • If I want to delete Pancard, I have to delete ProjectManager, because it Employeehas FK.
  • ProjectManager, Employee Projects, Employee Pancard. .
  • Projects, ProjectManager, ProjectManger ship Employee .

, , .

+3
3

. , JPA , .

  • , .

:

  • PanCard - Employee.
  • Employee - ProjectManager.
  • Project - ProjectManager.

- . , - . Employee, ProjectManager. , Employee . Employee ProjectManager.

+3

?
" ", .

0

In short:

  • Get an open entitymanager

  • Start transaction

  • Delete the necessary links (for example, perform the operations that you want to perform, but make sure that after that all restrictions are met)

  • Commit transaction

  • Close entitymanager

0
source

Source: https://habr.com/ru/post/1526151/


All Articles