2016-12-21 37 views
0

私は条件がJPQLの動的条件に苦しんでいます。私は同じの構文を検索しようとしましたが、coluldn'tは1つを見つける。私の場合はJPQL:どのように動的な条件を書くか

ユーザーがnameパラメータを渡しているならば、選択クエリが

ユーザーがnameパラメータを渡していないならば、選択クエリがあるべきユーザーから名=「サンジャイ」*

を選択する必要があります

select * from user 

以下は、名前パラメータが渡されなかった場合に失敗するjpqlのクエリ形式です。

entity_manager.createQuery("select u from user u where u.name = :name").setParameter("name",params[:name]).getResultList() 

名前パラメータが渡されたときと名前パラメータが渡されなかったときの両方をサポートするために、上記のJPQLクエリを更新するにはどうすればよいですか?

+0

2つの異なるクエリを使用するか、パラメータがある場合はwhere句を追加するか、条件APIを使用するか、QueryDSLを使用します。 –

+0

動的クエリを使用するためのオプションは次のとおりです。http://stackoverflow.com/questions/28874135/dynamic-spring-data-jpa-repository-query-with-arbitrary-and-clauses/ –

答えて

0

これはJPQLでは不可能です。あなたも何かをすることはできません

createQuery("select u from user u where u.name = :name OR :name IS NULL") 

これはできません。それは簡単です。 2つのクエリを使用するか、Criteria APIを使用してください。

関連する問題