Hibernate 检查表中是否存在提供了行的主ID的行

Hibernate 检查表中是否存在提供了行的主ID的行,hibernate,Hibernate,Hibernate中是否有任何方便快捷的方法可以通过提供数据库表中某一行的主Id来检查该行是否存在 我不想拉该对象,因为其他一些表与它链接,加载该记录对象会导致非常繁重的查询,我不想进行简单的布尔检查。因此,寻找一种简单而快速的方法来检查具有给定Id的行是否存在,根据我的说法,你必须点击数据库来做你想做的事情。如果已打开缓存,则如果要查找的对象存在于缓存中,Hibernate可能会避免命中数据库。但这是你无法确定的。表中可能有该行,但尚未提取到缓存。所以有必要访问数据库 一旦访问数据库,下一个最

Hibernate中是否有任何方便快捷的方法可以通过提供数据库表中某一行的主Id来检查该行是否存在


我不想拉该对象,因为其他一些表与它链接,加载该记录对象会导致非常繁重的查询,我不想进行简单的布尔检查。因此,寻找一种简单而快速的方法来检查具有给定Id的行是否存在,根据我的说法,你必须点击数据库来做你想做的事情。如果已打开缓存,则如果要查找的对象存在于缓存中,Hibernate可能会避免命中数据库。但这是你无法确定的。表中可能有该行,但尚未提取到缓存。所以有必要访问数据库


一旦访问数据库,下一个最好的方法就是不要获取整个对象及其所有相关对象等等。您可以通过多种方式实现这一点-1创建一个只包含所需列的最小实体-在这种情况下,您可能只需要获取id列。2触发一个只获取所需列的查询

如果我使用Projections.rowCount来获取only count呢?那也行。基本上,关键是,您无法避免数据库被命中。并寻找侵入性最小的方法来访问数据库。您可以通过几种方法检查时间差。