当前位置: 首页 > 知识库问答 >
问题:

JAVA JPA谓词-在OR条件中检索相同的列值

蔚学林
2023-03-14

我试图从表TABLE_A中检索数据,表TABLE_A包含列bb_num。

>

  • 我需要用JPA BooleanExpression编写表达式,

    需要从JPA谓词逻辑生成以下SQL查询:

    **Select * from TABLE_A where BB_NUM like 'GA22'OR BB_NUM like 'GA33';**
    

    而这个GA22和GA33是动态来的,所以这个where条件是动态添加的。

        boolean firstTime = true;
        str = "GA22GA33";
        BooleanExpression ent = null;
                        for (String array : str.split("GA")) {
                            if (StringUtils.isNotBlank(array)) {
                                if (firstTime) {
                                    ent = qTABLE_A.BB_NUM.containsIgnoreCase("GA" + array.trim());
                                    firstTime = false;
                                } else {
                                    ent.or(qTABLE_A.BB_NUM.containsIgnoreCase("GA" + array.trim()));
                                }
                            }
                        }
                        expressions.add(ent);
    

    上面的代码类似于SQL,

    **Select * from TABLE_A where BB_NUM like 'GA22';**
    

    需要工作

    **Select * from TABLE_A where BB_NUM like 'GA22' or BB_NUM like 'GA33';**
    
  • 共有1个答案

    万俟沛
    2023-03-14

    试试看:

    else {
        ent = ent.or(qTABLE_A.BB_NUM.containsIgnoreCase("GA" + array.trim()));
    }
    

    还可以将if(firstTime)替换为if(ent==null)

     类似资料:
    • 问题内容: 我有以下用于构建条件构建器的标准代码段。 我想知道有什么方法可以使它更好,因为我将更多地使用条件和相同条件来获取记录数。 任何见解都是高度赞赏的 问题答案: 首先,您必须考虑以分层方式重组应用程序。您至少需要3层,DAO,Service和WebService。 有关数据库和JPA的所有内容都必须在您的DAO层中。并且所有与json相关的事物都必须在您的WebService层中。您的服务

    • 我正在使用Hazelcast3.6IMap分布式存储大量数据(我已经在1B个项目上进行了测试)。我想通过键加入2个IMap实例,但似乎没有任何内置的功能来做到这一点。因此,如果键相等,我使用将这些映射的条目存储在同一个节点中,然后在claster的每个成员上使用第一个映射的。在此之后,我尝试从同一节点上的第二个映射中获取值,以避免网络传输谓词键。但似乎不在同一节点上执行此操作。有人已经有同样的问题

    • 问题内容: 我有这样一种逻辑,即先单击当前页面的标题,再单击下一步,然后再次获取标题,并且如果两个标题相同,则意味着导航尚未移至下一页,它将再次单击下一步。 但是,我的问题是title元素的Xpath不同-同一title元素具有两个Xpath。一个是一些页面,另一个是其他页面。 就是这个 要么 那么,我该如何处理呢? 问题答案: 如果元素具有两个xpath,则可以编写两个xpath,如下所示 例如

    • 我有这样一种逻辑,首先单击next按钮获取当前页面的标题,然后再次获取标题,如果两个标题相同,意味着导航没有移动到下一页,它会再次单击next。 然而,我的问题是title元素的Xpath不同-同一title元素有两个Xpath。一个是一些页面,另一个是其他页面。 要么是这个, 或 那么,我该怎么处理呢?

    • 我是Hazelcast的新手-评估和原型设计,看看它是否适合我们的分布式内存缓存需求。其中一个要求是能够使用通配符在给定地图中搜索关键字。通过查看IMap文档,可以使用keySet(谓词谓词)。但我不知道如何使用谓词,在给定通配符字符串的情况下,返回一个包含所有匹配键的键集。举个例子会很有帮助。 我的代码片段。这是客户端。 谢谢

    • 问题内容: 我目前已经实现了一个动态查询构建器,如果我的查询条件拼写正确,该构建器可以完美地工作。由于可能并非总是如此,因此我需要一个足够灵活的解决方案,以适应条件的任何变化,主要是支持不区分大小写。 当前规范的toPredicate方法覆盖代码如下所示: 从服务层调用的我的存储库接口如下所示。 谢谢您的帮助 问题答案: 通常,您可以使用equalsIgnoreCase()方法实现不区分大小写的功