我正在用spring实现一个简单的用户管理系统。为了实现更好的模型结构,我使用了继承。该系统基于三个类。保存一般信息的userdata
类。继承和扩展用户类的parent
类,最后是保存父对象的child
类。
我要做的是通过删除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
类继承自User并拥有一组Child:
@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;
希望有人能告诉我如何在我的系统中实现DELETE ON CASCADE
。
答案 0 :(得分:1)
mappedBy = "parent1", cascade = CascadeType.ALL, orphanRemoval = true
parent
的{{1}}中的@OneToMany注释添加Set<Child> children
。