[ https://issues.apache.org/jira/browse/DELTASPIKE-1330?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16722912#comment-16722912 ]
Arthur Pereira Gregório edited comment on DELTASPIKE-1330 at 12/17/18 11:55 AM: -------------------------------------------------------------------------------- I just made the PR #82, waiting to merge... Made some tests with my test project too, query now works: select author0_.id as id1_10_, author0_.created_on as created_2_10_, author0_.updated_on as updated_3_10_, author0_.active as active4_10_, author0_.born_date as born_dat5_10_, author0_.email as email6_10_, author0_.name as name7_10_ from registration.authors author0_ *where (upper(author0_.name) like ? or upper(author0_.email) like ?) and author0_.active=?* order by author0_.id asc limit ? was (Author: gregorioarthur): I just made the PR #82, waiting to merge... Made some tests with my test project to, the query now works: select author0_.id as id1_10_, author0_.created_on as created_2_10_, author0_.updated_on as updated_3_10_, author0_.active as active4_10_, author0_.born_date as born_dat5_10_, author0_.email as email6_10_, author0_.name as name7_10_ from registration.authors author0_ *where (upper(author0_.name) like ? or upper(author0_.email) like ?) and author0_.active=?* order by author0_.id asc limit ? > 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 > Priority: Critical > > 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)