私は、次のHQL使用休止という名前のパラメータは二回
EntityManager.createQuery("SELECT a FROM a WHERE a.b = :par OR a.c = :par").setParameter("par", obj);
が動作しないようです持っていると仮定しました。誰もがこの問題を解決する方法を知っていますか?
私は、次のHQL使用休止という名前のパラメータは二回
EntityManager.createQuery("SELECT a FROM a WHERE a.b = :par OR a.c = :par").setParameter("par", obj);
が動作しないようです持っていると仮定しました。誰もがこの問題を解決する方法を知っていますか?
setParameter(String name,Object val)
これは、名前付きパラメータに値をバインドするために使用されます。しかし、名前は関係のないクエリで何回も出現する可能性があります。したがって、実際にそのクエリのデータがあるかどうかを一度確認してください。
チェックドキュメントhere
名前付きクエリパラメータは、フォームのトークンであることからドキュメントのいくつかのメインテキスト:クエリ文字列に名前を入力します。値は、 setParameter( "foo"、foo、Hibernate.INTEGER)を呼び出して、整数パラメータ:fooにバインドされます。例えば、 。名前はクエリ文字列に複数回表示されることがあります。まだuはその結果を取得しない場合
ちょうど2人の名前を使用して試してみて、それが
EntityManager.createQuery(セット "WHERE AB =から選択します。PAR1またはAC =:PAR2を" ).setParameter( "par1"、obj).setParameter( "par2"、obj);
これは完全に正しいです。クエリが壊れていたようです。 DBMSには、ネイティブSQLを介した空の結果リストもあります。 +1この良い説明のために – DmiN
どのようなエラーが発生しますか? –
エラーはありません。結果リストは空です。 – DmiN
有効なデータがありますか?有効にしてください - persistence.xmlでshowsql = trueを取得し、生のSQLを取得してください – Sanath