- 締切済み
JPQLとSQLの結果…。
すいません、EJB初心者です。 現在仕事でEJBを利用したアプリケーションを開発しています。 JPQLを利用してクエリを投げた結果と、JPQLで投げた結果のログのSQLを利用して取得した結果が違うのですが、何かそういった現象に詳しい方いませんでしょうか? 以下が発行しているJPQLとログに流れるSQLです。 --JPQL SELECT COUNT(t) FROM table_A t WHERE t.columnA = '000000000000001' t.columnA NOT IN ('000000000000001') -- SQL SELECT COUNT(t.columnA) FROM table_A t WHERE t.columnA = '000000000000001' t.columnA NOT ('000000000000001') JPQLのほうは1件となり、SQLをコンソールで実行した結果は0件です。 期待する結果は0件です。 認識のある方、お力をお貸しいただけないでしょうか? お手数をおかけします。 宜しくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- bin-chan
- ベストアンサー率33% (1403/4213)
回答No.1
JPQLを知らないのですが。 SQLの Not には IN がない。 WHERE t.columnA = '000000000000001' t.columnA NOT ('000000000000001') 相反する条件を書いてあるように見えますが そもそも、Whereの2つの条件の間には And や Or は不要なのかな?
補足
ご回答、ありがとうございます。 しかし、見当違いです。 SQLはJPQLを流したときのログです。 DBにOracleを利用しているのですが、アプリケーションからJPQLえろ利用し、JPQLをORマッパーが解釈してDBにSQLえお流していると解釈しています。 問題はJPQLで実行した結果と、JPQLが出力したSQLをsqlplusで実行した結果が違うということです。 こういった現象にあった人がいて解決方法を知っている人がいれば教えていただきたいと思い、投稿しました。 お手数をおかけします。 宜しくお願いします。