如何检查是否存在至少一个与给定过滤器匹配的记录?

时间:2011-03-17 17:38:09

标签: hibernate hql

现在我有一个休眠模型,我在其上设置了一个过滤器,然后加载它。如果找到至少一条记录,我只需要执行不同的逻辑,如果没有找到记录,则需要执行。

问题是加载所有匹配的记录可能非常耗时且效率低下。有没有办法加载第一个只找到的模型,或者在hql中执行某些操作,只是告诉我是否有匹配我的过滤器的记录?

2 个答案:

答案 0 :(得分:0)

您可以使用投影并计算一些索引列。

答案 1 :(得分:0)

来自Hibernate Manual

  

您可以统计查询次数   结果没有返回:

     

((整数)   session.createQuery(“select count(*)   from ....“)。iterate()。next()   ).intValue()

如果您在模型上设置了过滤器,它也将应用于此查询。