You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltaspike.apache.org by "Arthur Pereira Gregório (JIRA)" <ji...@apache.org> on 2018/03/21 20:52:00 UTC

[jira] [Created] (DELTASPIKE-1330) Criteria with OR generate AND on query

Arthur Pereira Gregório created DELTASPIKE-1330:
---------------------------------------------------

             Summary: Criteria with OR generate AND on query
                 Key: DELTASPIKE-1330
                 URL: https://issues.apache.org/jira/browse/DELTASPIKE-1330
             Project: DeltaSpike
          Issue Type: Bug
          Components: Data-Module
    Affects Versions: 1.8.1
         Environment: JDK 8u161, Wildfly 11, JEE 7
            Reporter: Arthur Pereira Gregório


If I use a OR on criteria the generated query use AND instead of OR to mix the properties after WHERE clause.

Sample: 
{code:java}
// code placeholder
default List<T> findAllBy(String filter, Boolean blocked, int start, int pageSize) {

final Criteria<T, T> criteria = criteria();

if (isNotBlank(filter)) {
criteria.or(this.criteria()
.likeIgnoreCase(User_.name, filter)
.likeIgnoreCase(User_.username, filter)
.likeIgnoreCase(User_.email, filter));
} 

if (blocked != null) {
criteria.eq(this.getBlockedProperty(), blocked);
}

criteria.orderDesc(PersistentEntity_.createdOn);

return criteria.createQuery()
.setFirstResult(start)
.setMaxResults(pageSize)
.getResultList();
}
{code}
 

Generate this hibernate query: 

17:41:24,813 INFO  [stdout] (default task-64) Hibernate: select user0_.id as id1_4_, user0_.created_by as created_2_4_, user0_.created_on as created_3_4_, user0_.modified_by as modified4_4_, user0_.modified_on as modified5_4_, user0_.blocked as blocked6_4_, user0_.email as email7_4_, user0_.id_group as id_grou12_4_, user0_.name as name8_4_, user0_.password as password9_4_, user0_.store_type as store_t10_4_, user0_.username as usernam11_4_ from security.users user0_ *where (upper(user0_.name) like ?) and (upper(user0_.username) like ?) and (upper(user0_.email) like ?)* order by user0_.created_on desc limit ?



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)