deltaspike-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "John D. Ament" <johndam...@apache.org>
Subject Re: Extends AbstractEntityRepository Create custom methods
Date Fri, 26 Feb 2016 12:13:41 GMT
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 <pedrobelmino@gmail.com>
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 <danielsoro@gmail.com>:
>
> > 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 <pedrobelmino@gmail.com>
> > 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 <danielsoro@gmail.com>:
> > >
> > > > 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 <
> pedrobelmino@gmail.com
> > >
> > > > 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: pedrobelmino@great.ufc.br <franciscobernardo@great.ufc.br>
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > 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: pedrobelmino@great.ufc.br <franciscobernardo@great.ufc.br>
> > >
> >
> >
> >
> > --
> > 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: pedrobelmino@great.ufc.br <franciscobernardo@great.ufc.br>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message