我正在使用spring JPA插入和删除这些表中的记录。我可以插入记录,但是由于emp_workstation表中的ID不同,因此无法删除。如果employee_id和workstation_id相同,则删除工作正常,但如果两个id不相同,则在employee表和emp_workstation表(级联已设置为“ ALL”)中不会发生删除。有没有人以前遇到过这个问题或知道如何解决这个问题?
@Setter
@Getter
@Builder(toBuilder = true)
@AllArgsConstructor(access = AccessLevel.PUBLIC)
@NoArgsConstructor(access = AccessLevel.PUBLIC)
@Entity
@Table(name = "employee")
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sq_employee_id")
@SequenceGenerator(name = "sq_employee_id", sequenceName = "sq_employee_id", allocationSize = 1)
private Long id;
@Column(name = "employee_name", length = 50)
private String name;
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinTable(name = "emp_workstation", joinColumns = {
@JoinColumn(name = "employee_id") }, inverseJoinColumns = { @JoinColumn(name = "workstation_id") })
private Workstation workstation;
}
@Setter
@Getter
@Builder(toBuilder = true)
@AllArgsConstructor(access = AccessLevel.PUBLIC)
@NoArgsConstructor(access = AccessLevel.PUBLIC)
@Entity
@Table(name = "workstation")
public class Workstation {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sq_workstation_id")
@SequenceGenerator(name = "sq_workstation_id", sequenceName = "sq_workstation_id", allocationSize = 1)
private Long id;
@Column(name = "workstation_name", nullable = false, length = 100)
private String name;
@Column(name = "workstation_area", nullable = false, length = 100)
private String name;
@OneToOne(mappedBy = "workStation")
private Employee employee;
}
示例:在EMP_WORKSTATION表中,如果EMPLOYEE_ID和WORKSTATION_ID相同,则删除工作正常。但是,如果两个ID都不相同,则无法删除。
谢谢