【问题标题】:jpa 2.0: how to do a sql minus of a collection with a tablejpa 2.0:如何使用表对集合进行 sql 减法
【发布时间】:2012-02-02 12:39:58
【问题描述】:

我正在寻找一个 JPQL 或 Criteria 表达式来查找我的集合中不在表中的整数(代码)子集。

Oracle 数据库的本机查询将是:

选择列值
FROM 表(:listOfCodes)
减号
选择代码
从表 1;

这与这里的帖子相似,但不完全是我想要的 jpa 2.0 criteria api expression for sql minus

任何指针/帮助将不胜感激。

【问题讨论】:

    标签: jpa-2.0 jpql criteria-api


    【解决方案1】:

    您可以只查询表和集合中的值,然后对查询返回的值求补:

    List<Integer> valuesInTheTable = 
        (List<Integer>) em.createQuery("select a.column from Entity a where a in (:values)")
                          .setParameter("values", values)
                          .getResultList();
    
    Set<Integer> valuesNotInTheTable = new HashSet<Integer>(values);
    valuesNotInTheTable.removeAll(valuesInTheTable);
    

    【讨论】:

      猜你喜欢
      • 2016-05-07
      • 2011-10-18
      • 1970-01-01
      • 2017-01-01
      • 1970-01-01
      • 2023-03-18
      • 2013-07-25
      • 2013-05-15
      • 1970-01-01
      相关资源
      最近更新 更多