Java OpenJPA添加1<&燃气轮机;1至WHERE条款

Java OpenJPA添加1<&燃气轮机;1至WHERE条款,java,jpa,openjpa,Java,Jpa,Openjpa,OpenJPA正在我的WHERE子句中添加“11”。知道为什么吗?我在下面列出了一些示例代码和Sql //Criteria Query _PredicateList.add( _CriteriaBuilder.equal( _RootClass.get(Test_.Data) ,"XXX"

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

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

//sql snippet that is generated
t0.Data= 'XXX' AND 1 <> 1
//条件查询
_谓词列表添加(
_标准构建器(
_RootClass.get(测试数据)
“XXX”)
);      
//生成的sql代码段
t0.数据='XXX'和1

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

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