2014-10-03 67 views
1

Hibernate中是否有任何方便且快速的方法,通过提供该行的主Id,我可以检查数据库表中是否存在行。检查表中是否存在具有所提供的主行ID的行

我不想拉对象,因为一些其他表与它链接并加载该记录对象导致非常沉重的查询,我不想用于简单的布尔检查。所以寻找一种简单而快速的方法来检查给定ID是否存在行

回答

0

根据我的观点,您必须打开数据库才能执行您的想法。如果你打开了缓存,如果你正在寻找的对象存在于缓存中,Hibernate可能会避免碰到数据库。但这是你不能确定的事情。该表可能具有该行并且尚未提取到高速缓存。所以有必要击中数据库。

一旦你点击数据库,你可以做的下一件事就是不要获取整个对象及其所有相关对象等等。您可以通过多种方式来完成此操作 - (1)仅创建一个只包含所需列的最小实体 - 在这种情况下,可能需要提取id列。 (2)激发一个只提取你需要的列的查询。

+0

如果我使用Projections.rowCount()来只计数? – Abhi 2014-10-03 10:01:18

+0

这也会起作用。基本上,重点是,你无法避免数据库命中。并寻找侵入数据库的方式。您可以检查几种方法的时间差异。 – ArunGeorge 2014-10-03 10:26:56