Java 在JPA中使用继承和manytone关系时如何级联删除
我正在用spring实现一个简单的用户管理系统。为了获得更好的模型结构,我使用了继承。该系统基于三个类构建。保存一般信息的Java 在JPA中使用继承和manytone关系时如何级联删除,java,mysql,hibernate,jpa,Java,Mysql,Hibernate,Jpa,我正在用spring实现一个简单的用户管理系统。为了获得更好的模型结构,我使用了继承。该系统基于三个类构建。保存一般信息的userdata类。继承和扩展用户类的父类类,最后是保存父对象的子类 我想做的是通过删除parent对象来删除所有子对象(指父对象) 我已经能够通过我的视图在mySQL数据库中保存/删除对象,因此存储库/服务/控制器似乎可以工作 为了让您更好地了解我的情况,我在下面添加了一些代码 我的用户类别: @Entity @Inheritance(strategy = Inherita
userdata
类。继承和扩展用户类的父类
类,最后是保存父对象的子类
我想做的是通过删除parent
对象来删除所有子对象(指父对象)
我已经能够通过我的视图在mySQL数据库中保存/删除对象,因此存储库/服务/控制器似乎可以工作
为了让您更好地了解我的情况,我在下面添加了一些代码
我的用户
类别:
@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;
我的子类
包含父对象的类
@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;
@实体
@交易的
公共类子级实现持久化{
私有静态最终长serialVersionUID=1L;
@身份证
@GeneratedValue(策略=GenerationType.AUTO)
私人长id;
@NotNull
私有字符串名;
@NotNull
私有字符串lastName;
@NotNull
私人串生日;
@NotNull
@多通(可选=假)
私人家长1;
希望任何人都能告诉我,我是如何在我的系统中实现级联删除的。通过设置子项将级联添加到@OneToMany注释中的。你能尝试添加级联={CascadeType.PERSIST}
到@OneToMany
注释中?@DarshanMehta我得到类org.springframework.dao.DataIntegrityViolationException
…也许我也需要在多通中添加一些东西?是的,你能尝试在这两个中添加级联类型.持久化
吗?我已经添加了,但没有成功。。
@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;