【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集

すいません、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件です。

認識のある方、お力をお貸しいただけないでしょうか?

お手数をおかけします。
宜しくお願いします。

A 回答 (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で実行した結果が違うということです。

こういった現象にあった人がいて解決方法を知っている人がいれば教えていただきたいと思い、投稿しました。

お手数をおかけします。
宜しくお願いします。

補足日時:2012/03/05 01:37
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報