[ 
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 commented on DELTASPIKE-1330:
-----------------------------------------------------

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)

Reply via email to