我有基于JHipster生成器的项目。我有两个实体:模式和文件。一个模式只有一个文件,并且一个文件只能附加到一个模式。所以我认为它是典型的一对一关系。删除是关联关系的一方面时如何删除其他实体?我的意思是:删除模板时,我还要删除文件。另外,当我删除文件时,我想删除图案。 我有这样的想法:
public class Pattern implements Serializable {
@OneToOne(mappedBy = "entityPattern")
@OnDelete(action = OnDeleteAction.CASCADE)
@JsonIgnore
private File file;
}
和
public class File implements Serializable {
@OneToOne(cascade=CascadeType.REMOVE, orphanRemoval = true)
@JoinColumn(unique = true)
private Pattern pattern;
}
但是它不起作用。我有org.springframework.dao.DataIntegrityViolationException异常导致约束冲突。
答案 0 :(得分:2)
这应该有效:
public class Pattern implements Serializable {
@OneToOne(mappedBy = "pattern",cascade = CascadeType.REMOVE)
@JsonIgnore
private File file;
}
public class File implements Serializable {
@OneToOne(cascade=CascadeType.REMOVE, orphanRemoval = true)
@JoinColumn(unique = true)
private Pattern pattern;
}
我只使用了JPA兼容代码。