次のようなJPQLクエリを書くことは可能ですか?
select count(*) > 0 from Scenario scen where scen.name = :name
エンティティ充填条件が存在するかどうかに応じてtrue/falseブール値を返しますか?
このクエリを次のように使用したいと思います。
boolean exists = entityManager.createQuery(query,Boolean.class).setParameter("name",name).getSingleResult();
私の例のクエリは構文的に正しくありません(解析エラー)が、ブール値を返すJPQLのようなチェックを行う正しい方法はありますか、それともJavaコードでのみ可能ですか?
はい、次の方法で可能です。
select case when (count(scen) > 0) then true else false end
from Scenario scen where scen.name = :name
どうですか:
select count(scen) > 0
from Scenario scen where scen.name = :name
私は同じ問題を抱えていたので、休止状態を4.3.11.Finalに更新しましたが、現在は機能しています。