CustomerQueryInfo
次のプロパティを持つBean があるとします。
- 文字列 firstName
- 文字列姓
- StatusEnum ステータス
顧客のリストを返すこのタイプのオブジェクトを使用して、「 QueryDSL 」検索を実行したいと考えていますList<Customer>
。
のフィールドの 1 つが である場合CustomerQueryInfo
、null
検索で使用したくありません。したがって、 3 つのフィールドCustomerQueryInfo
すべてが に設定されたオブジェクトは、すべての customersを返します。null
このような検索を QueryDSL で実行するためのベスト プラクティスを探しています。
このようなものはOKです:
private BooleanExpression isFirstNameLike(String firstName){
if(firstName==null)
return true BooleanExpression somehow;
return QCustomer.customer.firstName.like(firstName);
}
private BooleanExpression isStatutEq(StatusEnum status){
if(status==null)
return true BooleanExpression somehow;
return QCustomer.customer.status.eq(status);
}
それから:
return query.from(customer).where(isFirstNameLike(customerQueryInfo.getFirstName).and(isLastNameLike(customerQueryInfo.getLastName).and(isStatusEq(customerQueryInfo.getStatus))).list;
BooleanExpression
true と評価されるa を返すにはどうすればよいですか?- 上記のアプローチが適切でない場合、推奨されるベスト プラクティスは何ですか?