【问题标题】:OpenJPA adding 1 <> 1 to WHERE clauseOpenJPA 将 1 <> 1 添加到 WHERE 子句
【发布时间】:2015-10-19 21:09:22
【问题描述】:

OpenJPA 正在将“1 1”添加到我的 WHERE 子句中。知道为什么吗?我在下面列出了一些示例代码和 Sql

 //Criteria Query
_PredicateList.add(
    _CriteriaBuilder.equal(
            _RootClass.get(Test_.Data)   
            ,"XXX"                                                                                      )
        );      

//sql snippet that is generated
t0.Data= 'XXX' AND 1 <> 1

【问题讨论】:

    标签: java jpa openjpa


    【解决方案1】:

    您正在构建的条件可能没有机会评估为 true 并且 OpenJPA 在查询设置时检测到它。这可能是由于比较不兼容的类型(在您的情况下)或由于其他情况下的许多不同原因(即非空列上的“为空”条件,与大于允许的最大长度的字符串常量进行比较列等)。

    为什么会出现这种奇怪的情况?可能是为了向开发人员提示查询中存在逻辑错误(并且不会因运行时异常而失败)。不太可能,出于性能原因。此外,并非所有 SQL 方言都支持布尔文字。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-07
      • 2019-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多