1
我正在實現一個簡單的用戶管理系統與春天。爲了實現更好的模型結構,我使用繼承。該系統建立在三個班級上。持有一般信息的userdata
類。繼承和擴展用戶類的類,最後是持有父對象的類。如何級聯刪除時使用繼承和ManyToOne與JPA的關係
我想要做的是通過刪除parent
對象來刪除所有的孩子(被稱爲父母)刪除。
我已經能夠通過我的視圖在mySQL-DB上保存/刪除對象,因此存儲庫/服務/控制器似乎可以工作。
爲了讓您更好地瞭解我的情況,我在下面放了一些代碼。
我User
類別:
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class UserData implements Persistable<String> {
private static final long serialVersionUID = 1L;
@Id
@NotNull
private String username;
@NotNull
private String password;
@NotNull
private String firstName;
@NotNull
private String lastName;
我Parent
類從用戶繼承和保存一組兒童:
@Entity
public class Parent extends UserData {
private static final long serialVersionUID = 1L;
private String imgName;
@OneToMany(fetch = FetchType.EAGER)
@ElementCollection
private Set<Child> children;
我Child
類,其保持父對象
@Entity
@Transactional
public class Child implements Persistable<Long> {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@NotNull
private String firstName;
@NotNull
private String lastName;
@NotNull
private String birthday;
@NotNull
@ManyToOne(optional = false)
private Parent parent1;
希望任何人都可以告訴我我是如何實現的在我的系統中有e DELETE ON CASCADE
。
你可以嘗試在'@ OneToMany'註釋中添加'cascade = {CascadeType.PERSIST}'嗎? –
@DarshanMehta我得到'class org.springframework.dao.DataIntegrityViolationException' ...也許我需要向'ManyToOne'添加一些東西? – SteveOhio
是的,你可以嘗試在兩者中添加'CascadeType.PERSIST'嗎? –