gpt4 book ai didi

hibernate - 检查存在于 hibernate 条件 API 中

转载 作者:行者123 更新时间:2023-12-03 14:31:05 24 4
gpt4 key购买 nike

如何使用 Hibernate Criteria 最好地表达“存在”查询?

在我的项目中,人们使用计数投影来检查是否有任何行符合条件(计数 > 0)。为了更有效,我更喜欢使用exists。

以下是按条件计数的基本代码:

public int count(final DetachedCriteria criteria) throws DataAccessException {

Object countResult = executeWithNativeSession(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Criteria executableCriteria = criteria.getExecutableCriteria(session);
executableCriteria.setProjection(Projections.rowCount());

prepareCriteria(executableCriteria);

return executableCriteria.uniqueResult();
}
});
if (countResult == null) {
countResult = 0;
}

return (Integer) countResult;
}

最佳答案

前段时间,我也有同样的疑问,我认为它是低效的。所以我现在所做的就是搜索第一个巧合,而且速度更快。

protected boolean exists(final Criteria query) {
query.setProjection(Projections.id());
query.setMaxResults(1);
return query.uniqueResult() != null;
}

我希望这有帮助。

关于hibernate - 检查存在于 hibernate 条件 API 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19784412/

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