皆さんにメリークリスマスと新年あけましておめでとうございます。JPAクエリが実行されておらず、例外をスローする
現在私の大学のJPAプロジェクトで働いています。私は多くのパラメータを受け取る@Serviceクラスに関するメソッド、特にクエリに問題があります。
まず、2つのパラメータを使用してクエリを動作させようとしています。
ここにその方法があります。
WARNING::#{searchBean.fillCandidatesOps}:java.lang.IllegalArgumentExceptionが:org.hibernate.QueryException:すべての名前付きパラメータがされていない私は、このクエリを実行しようとする一方で
@Override
@Transactional (readOnly = true)
public List<Candidate> obtainCandidatesOps(String name, String firstName,
String secondName, String passport, CandidateType candidateType,
Area area, Country country) {
List<Candidate> resultList = new ArrayList<Candidate>();
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Candidate> cq = cb.createQuery(Candidate.class);
Root<Candidate> r = cq.from(Candidate.class);
cq.where(cb.and(cb.equal(r.get("name"), cb.parameter(String.class, "name")),cb.equal(r.get("firstLastName"), cb.parameter(String.class, "firstName"))));
cq.select(r);
resultList = em.createQuery(cq).getResultList();
return resultList;
}
は、私はこのエラーを受け取りますセット:[firstName、name] [generatedAlias0はどこから(generatedAlias0.name =:name)と(generatedAlias0.firstLastName =:firstName)]を選択します。
間違いはどこですか?私はこれを5日間以上過ごしてきましたが、システムの開発の背後に本当にありました。私は本当にこれに関するいくつかのヒントを必要としています:)
私はこのトピックを読んで、私の問題を解決しませんでした。
How to solve "org.hibernate.QueryException: Not all named parameters have been set" error?
感謝あなたのすべて。
お返事ありがとうございました。私はこれを試しましたが、結果が得られませんでした。つまり、nullで返されるリストです。もちろん、私はリストにnullで返されなかったかどうかを見るためにデータベース上の "名前"を使ってこのクエリを試しました。 – AvB
もしあなたがそれをしたら、質問に答えが出るかもしれないので、QUESTION(これはあなたが欠落しているパラメータについての例外を持っていると言います)でそう言わなければなりません。次に、選択したJPAプロバイダによって呼び出されたSQLを見てデバッグします。 –