![]() |
有腹肌的夕阳 · 威尼斯最新网址-9778818威尼斯官网· 4 月前 · |
![]() |
狂野的毛豆 · Com.google.code.gson:g ...· 5 月前 · |
![]() |
憨厚的感冒药 · 迷你联萌大冒险 - 萌娘百科 万物皆可萌的百科全书· 6 月前 · |
![]() |
近视的仙人掌 · 四川省体育局副局长陈兴东宣讲党的二十大精神_ ...· 6 月前 · |
![]() |
一直单身的海豚 · 这个王妃有点皮_这个王妃有点皮漫画下拉式六漫 ...· 1 年前 · |
假设我有具有以下属性的
CustomerQueryInfo
bean:
我想使用这个类型的对象执行"
QueryDSL
“搜索,该对象将返回客户
List<Customer>
列表。
如果
CustomerQueryInfo
的一个字段是
null
,我不想在搜索中使用它。因此,一个将所有三个
null
字段都设置为的
CustomerQueryInfo
对象将返回
all
。
我正在寻找使用QueryDSL执行这样一个搜索的最佳实践。
是这样的吗?
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
?
发布于 2012-09-05 17:51:48
您可以像这样安全地使用空谓词
private BooleanExpression isFirstNameLike(String firstName){
return firstName != null ? customer.firstName.like(firstName) : null;
private BooleanExpression isStatusEq(StatusEnum status){
return status != null ? customer.status.eq(status) : null;
}
并使用其中的varargs方面
query.from(customer)
.where(
isFirstNameLike(customerQueryInfo.getFirstName()),
isLastNameLike(customerQueryInfo.getLastName()),
isStatusEq(customerQueryInfo.getStatus()))
.list(customer);
发布于 2017-10-09 17:25:28
如何返回计算为true的BooleanExpression?
![]() |
有腹肌的夕阳 · 威尼斯最新网址-9778818威尼斯官网 4 月前 |
![]() |
狂野的毛豆 · Com.google.code.gson:gson is a banned dependency - Confluence Data Center - The Atlassian Developer 5 月前 |
![]() |
憨厚的感冒药 · 迷你联萌大冒险 - 萌娘百科 万物皆可萌的百科全书 6 月前 |