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

标签 java hibernate hql

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

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

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

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

如果您不需要知道哪些实体丢失/存在......您可以只进行计数(@JBNizet)

关于java - HQL 检查列表中的所有元素是否存在于表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29299005/

相关文章:

java - 显式转换返回

java - 如何播放与速度或弧线联动的转轮音效

java - 多模块 hibernate 应用程序

hibernate - 如何使用 JPA 和 JpaSpecificationExecutor 按结果分组?

java - 由于外键损坏,Hibernate 无法重建表

java - ArtifactTransferException : Failure to transfer org. springframework.data :spring-data-jpa:jar:1. 7.0.RELEASE

java - 按映射关联进行 hibernate 顺序

c# - NHibernate 获取下一个生日

java - 获取加入 Hibernate 中的关联

java - 使用来自多个表的信息来记录交付的通用或特定 DAO?