2013-08-10 11 views
5

私は私が好きに見えるクエリ、employeIdとempDepartmentを構築しようとしているJPA 2.0org.hibernate.QueryException:すべての名前付きパラメータが設定されているわけではありません:[]

のうち、非常に奇妙な行動を取得していますJavaの引数

Query query=em.createQuery("SELECT e FROM Employee e WHERE e.empId = :empId and e.empDepartment = :empDepartment"); 
query.setParameter("empId" ,employeId); 
query.setParameter("empDepartment",empDepartment); 

しかし、初めて上記のクエリのdoesntの仕事、それが上記のエラーを生成するが、私は再び同じ方法をtriggedときに、第2の時間すべてのものが、これはそれぞれ、すべての時間に発生し、スムーズに行ってきましたを通過する長い値であります、それの理由は何でしょうか?

+1

これが起こっている全体の方法を教えてもらえますか? – chrylis

+1

最初に実行されるのを止める 'query.setParameter'呼び出しのまわりにいくつかの' if'文が必要です。あなたは@chrylisが示唆しているように完全な方法を投稿できますか? –

答えて

0

あなたはこの試みることができる:これはないパラメータの交換に、同様にあなたのクエリコンテンツに問題があることができるよりも、どちらか動作しない場合

Query query=em.createQuery("SELECT e FROM Employee e WHERE e.empId = ? and e.empDepartment = ?"); 
query.setParameter(1, employeId); 
query.setParameter(2, empDepartment); 

を。多分、タイプが正しくないかもしれません。パラメータ型はコンテキストによって推論されます。

+1

こんにちは、ありがとう – user2670113

0
Query query=em.createQuery("SELECT e FROM Employee e WHERE e.empId=:empId and e.empDepartment=:empDepartment"); 

query.setParameter("empId" ,employeId); 
query.setParameter("empDepartment",empDepartment); 

私は理由を知りませんでしたが、それは一度私に起こりました。このように試してみてください。 =:empIdと他のパラメータの間の空白を削除するだけです。

関連する問題