HQL 检查列表中的所有元素是否存在于 table
HQL to check if all element from a list is exist in a table
我在数据库中有一个名为 Role.java
的实体 class 和一个 Role_tbl
table。在我的代码中,我有一个 ArrayList
的 Role
- 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)
我在数据库中有一个名为 Role.java
的实体 class 和一个 Role_tbl
table。在我的代码中,我有一个 ArrayList
的 Role
- 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)