gpt4 book ai didi

java - 如何从jpa中的元素集合中批量删除

转载 作者:可可西里 更新时间:2023-11-01 08:21:00 26 4
gpt4 key购买 nike

我使用的是 jpa 2.0,我有以下实体:

@Entity
public class Folder{

@ElementCollection
@CollectionTable(name="folder_files")
private Set<String> files;
// .....
}

给定一个文件名,我想删除文件 == theGivenFileName 的所有条目。在 sql 中它会是这样的:

Delete from folder_files where files = XXX

有没有办法使用 criteria-api 执行此查询?如果没有,有没有办法使用 jpql 执行此查询?

更新:我认为我的问题不够清楚:由于 jpql 使用实体(而不是表),我不能只执行上面写的 sql 加上因为我正在使用 @ElementCollection 我不知道如何解决这个 variablr 甚至处理它。我想从所有实体中删除该集合(在我的例子中是文件集)中所有具有给定值的条目。是否可以使用 jpql 或(甚至更好的)criteria-api?

最佳答案

Delete FROM 子句需要一个实体,因此据我所知无法从元素集合中删除。

您可以使用 native SQL 查询,也可以将元素集合作为 OneToMany 映射到实体。

关于java - 如何从jpa中的元素集合中批量删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10481654/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com