クエリーコンパイラは、仕様の Java Persistence 言語の章で定義されたすべてのルールをチェックするわけではありません。具体的には、次のチェックは行われません。
関数引数の型の互換性。
算術、論理、および比較演算子のオペランドの型の互換性。
ORDER BY クエリーの SELECT 句の要件。
無効なクエリーは、コンパイルできても実行時に SQLException が発生する可能性があります。また、配下のデータベースでは制約が少なく、生成された SQL がサポートされても、別のデータベースで同じクエリーを実行すると SQLException が発生して失敗する場合もあります。
上の条件を手動で確認してください。