2015-10-19 37 views
1

OpenJPA正在爲我的WHERE子句添加「1 <> 1」。任何想法爲什麼?我下面列出OpenJPA在WHERE子句中添加1 <> 1

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

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

回答

1

一些示例代碼& SQL您正在構建的條件有可能沒有計算到真正的機會和OpenJPA檢測到它在查詢設置時間。這可能是由於比較不兼容的類型(在你的情況下)或其他情況下的許多不同的原因造成的(例如,非空列上的「null」條件,與大於允許的最大長度的字符串常量的比較列等)。

爲什麼這麼奇怪的狀況?可能會向開發人員暗示查詢中存在邏輯錯誤(並且不會因運行時異常而失敗)。出於性能原因,可能性較小。另外,並非所有SQL方言都支持布爾文字。

相關問題