HQL 检查列表中的所有元素是否存在于 table

HQL to check if all element from a list is exist in a table

我在数据库中有一个名为 Role.java 的实体 class 和一个 Role_tbl table。在我的代码中,我有一个 ArrayListRole - roleList 。我只想检查 roleList 中的所有角色是否都存在于 Role_tbl 中。

所以首先我从 Role_tbl 中获取所有数据,将它们放入 Role - roleListfromDB 的新 ArrayList 中。之后使用 for each 循环我完成了检查 -

for(Role each : roleList){
   if(!roleListFromDB.contains(each)){
     flag = false; 
     break;
   }
}  

但我觉得效率不够。我知道 hql 中有一个 exist 子句。我可以用它来检查单个对象。但是我可以用它来检查数据库中是否存在整个 roleList 吗?

提前致谢。

So first of all I have fetch all data from Role_tbl

不,你不知道。 只需查询 table 匹配的实体,如果返回的列表大小相同,则它们都在那里。

如果您不需要知道哪些实体是 missing/present ...您可以做一个计数 (@JBNizet)