我正在为我的ORM使用JpaRepository。
@Entity
@DiscriminatorValue(value = "L")
@Table(name = "LARGEPROJECT")
public class LargeProject extends Project {
LargeProject() { // jpa only
}
public String description;
@ElementCollection
public Map<String, String> params = new HashMap<>();
@ElementCollection
public Map<String, String> anotherSet = new HashMap<>();
}
我正在尝试使用以下api进行批量删除:
this.largeProjectRepository.deleteAllInBatch();
public interface LargeProjectRepository extends JpaRepository<LargeProject, Long> {
}
我得到了一个例外:
org.springframework.dao.DataIntegrityViolationException:无法执行语句; SQL [不适用];约束[&#34; FK_K8XLJ5LKC9IK2E39EK06MWUM7:PUBLIC.LARGE_PROJECT_PARAMS FOREIGN KEY(LARGE_PROJECT_PROJECT_ID)REFERENCES PUBLIC.LARGEPROJECT(PROJECT_ID)(1)&#34 ;; SQL语句: 从bigproject中删除(project_id)IN(从HT_largeproject中选择project_id)[23503-176]];
我研究了一下,发现了以下内容: How to do bulk delete in JPA when using Element Collections?
How can I cascade delete a collection which is part of a jpa entity?
我想知道JPA是否支持基于API的删除,如@ElementCollection的这些帖子中所述?如果不是最好的方法是什么?