gpt4 book ai didi

java - 如何使用 Criterion 高效删除实体?

转载 作者:行者123 更新时间:2023-12-01 05:43:36 25 4
gpt4 key购买 nike

目前,我必须创建一个临时 Criteria 并使用 Criteria.list() 获取匹配的实体列表,然后将该列表传递给 HibernateTemplate .deleteAll():

void delete(Criterion criterion) {
Criteria c = DetachedCriteria.forClass(Foo.class).getExecutableCriteria(session);
c.add(criterion);
getHibernateTtemplate().deleteAll(c.list());
}

是否可以按条件删除但不首先加载列表?

也许,我应该将标准转换为 HQL,例如 “从 Foo where 删除” + criteria.toHQL()

背景

我有一个搜索表单,稍后将其解析并转换为条件组合。

使用 Criteria.list() 检索搜索结果。

现在,一个问题映入眼帘,我想删除所有搜索结果。我是否应该再次解析搜索表单,但以不同的方式将其转换为 HQL 字符串?如果我可以重用标准,事情会更简单。

由于 Criteria 最相当于 WHERE 子句,(不是吗?)我认为没有理由不能使用 Criteria 进行删除。

最佳答案

您确实只能使用 HQL 来做到这一点。没有等效的标准 API。

关于java - 如何使用 Criterion 高效删除实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6482550/

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