I don't know why the javadoc is not published for last version. Someone can see that?
On Fri, Feb 26, 2016 at 4:18 AM, Daniel Cunha <[email protected]> wrote: > If I get it, he want to use QueryResult to have easy way to navigate[1] on > pages. > I proposed that he use the Criteria API, but it not sound good for he. > > I don't know a > > [1] > https://deltaspike.apache.org/javadoc/1.5.2/org/apache/deltaspike/data/api/QueryResult.html#nextPage() > > On Fri, Feb 26, 2016 at 4:13 AM, John D. Ament <[email protected]> > wrote: > >> Hi, >> >> Are you sure you need to return query result? Seems like you're crossing >> boundaries. >> >> typedQuery("").setFirstResult(2).setMaxResults(4).getResultList() >> >> That should take care of the pagination for you. >> >> John >> >> On Fri, Feb 26, 2016 at 6:58 AM Pedro Belmino <[email protected]> >> wrote: >> >> > Hi, >> > Daniel Cunha, >> > >> > I appreciate the support but this solution to make the logic in the >> > business layer is not viable for me , I would have to combine all the >> > possible filters. >> > >> > I'm at that point, but still no solution. >> > public QueryResult<Person> findByNameLikeIgnoreCaseAndAssigment(String >> > name, Assigment assigment, @FirstResult int start, @MaxResults int >> > pageSize){ String queryString = "select p "+ " FROM Person p " + "WHERE >> > p.name = :name and p.assigment = :assigment"; javax.persistence.Query >> > query >> > = entityManager().createQuery(queryString); query.setParameter("name", >> > name); query.setParameter("assigment", assigment); QueryResult<Person> >> d = >> > new DefaultQueryResult<>(new QueryBuilder() { @Override protected Object >> > execute(CdiQueryInvocationContext ctx) { >> > ctx.applyJpaQueryPostProcessors(query); return ctx.executeQuery(query); >> } >> > }, cdiQueryContextHolder.get());// OCCURS NullPointerException return >> d; } >> > >> > Can someone help me? >> > >> > 2016-02-25 15:11 GMT-03:00 Daniel Cunha <[email protected]>: >> > >> > > Hi Pedro, >> > > >> > > You can try that: >> > > >> > > >> > >> https://github.com/apache/deltaspike/blob/master/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/SimpleRepository.java#L103 >> > > >> > > >> > >> https://github.com/apache/deltaspike/blob/master/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/QueryResultTest.java#L167 >> > > >> > > So, you'll create methods on your repository, something like: >> > > findByNameLikeIgnoreCase >> > > findByAssigment >> > > findByNameLikeIgnoreCaseAndAssigment >> > > >> > > >> > > So you can put your business logic on your business class. >> > > >> > > You'll call the method that you need: >> > > >> > > @Inject >> > > private RepositoryClass repository >> > > >> > > if (YOUR_LOGIC) >> > > repository.findByNameLikeIgnoreCaseAndAssigment >> > > ... >> > > >> > > To be honest, I don't know if possible to do like you was trying. >> > > I needed checking it. >> > > >> > > >> > > On Thu, Feb 25, 2016 at 2:04 PM, Pedro Belmino < >> [email protected]> >> > > wrote: >> > > >> > > > Daniel, >> > > > OK to return an object of type List<Person>. >> > > > >> > > > However i need return an QueryResult<Person>, because the >> pagination is >> > > > important for me. >> > > > >> > > > >> > > > >> > > > 2016-02-25 13:59 GMT-03:00 Daniel Cunha <[email protected]>: >> > > > >> > > > > Hi Pedro, >> > > > > >> > > > > JPA Criteria API Support sounds better for this cases: >> > > > > >> > > > >> > > >> > >> http://deltaspike.apache.org/documentation/data.html#JPACriteriaAPISupport >> > > > > >> > > > > On Thu, Feb 25, 2016 at 1:50 PM, Pedro Belmino < >> > [email protected] >> > > > >> > > > > wrote: >> > > > > >> > > > > > Hello, >> > > > > > I need construct an method that receive dynamic parameters for >> HQL >> > > > query >> > > > > > construct. >> > > > > > >> > > > > > For example: >> > > > > > @Repository(forEntity = Person.class) >> > > > > > public abstract class PersonCustomRepository extends >> > > > > > AbstractEntityRepository<Person, Long> { >> > > > > > >> > > > > > public QueryResult<Person> >> > > > > > findByNameLikeIgnoreCaseAndAssigment(String name, >> > > > > > Assigment assigment, @FirstResult int start, @MaxResults int >> > > pageSize){ >> > > > > > String query = "select p from person p WHERE 1 = 1 "; >> > > > > > if(name!=null&&!name.equals("")){ >> > > > > > query+= " and name = ?1 "; >> > > > > > } >> > > > > > if(assigment!=null){ >> > > > > > query+= " and assigment = ?2 "; >> > > > > > } >> > > > > > // WHAT IS NECESSARY CODE FOR RETURN paginated object of type >> > > > > > QueryResult<Person>. >> > > > > > } >> > > > > > } >> > > > > > >> > > > > > I'm doing something wrong? I do otherwise? >> > > > > > >> > > > > > -- >> > > > > > >> > > > > > >> > > > > > >> > > > > > *Pedro Belmino *System Analist >> > > > > > Laboratory of Mobile Computing and Design >> > > > > > Federal University of Ceará >> > > > > > Office: + 55 85 3366-9797 >> > > > > > E-mail: [email protected] < >> [email protected]> >> > > > > > >> > > > > >> > > > > >> > > > > >> > > > > -- >> > > > > Daniel Cunha >> > > > > https://twitter.com/dvlc_ >> > > > > http://www.tomitribe.com >> > > > > >> > > > >> > > > >> > > > >> > > > -- >> > > > >> > > > >> > > > >> > > > *Pedro Belmino *System Analist >> > > > Laboratory of Mobile Computing and Design >> > > > Federal University of Ceará >> > > > Office: + 55 85 3366-9797 >> > > > E-mail: [email protected] <[email protected]> >> > > > >> > > >> > > >> > > >> > > -- >> > > Daniel Cunha >> > > https://twitter.com/dvlc_ >> > > http://www.tomitribe.com >> > > >> > >> > >> > >> > -- >> > >> > >> > >> > *Pedro Belmino *System Analist >> > Laboratory of Mobile Computing and Design >> > Federal University of Ceará >> > Office: + 55 85 3366-9797 >> > E-mail: [email protected] <[email protected]> >> > >> > > > > -- > Daniel Cunha > https://twitter.com/dvlc_ > http://www.tomitribe.com > -- Daniel Cunha https://twitter.com/dvlc_ http://www.tomitribe.com
