You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@deltaspike.apache.org by Rafael Pestano <rm...@gmail.com> on 2016/07/19 13:56:05 UTC
Criteria select attribute from relashionship
Hi guys,
I have a OneToMany relashionship between entities A and B and want to
select atributes from B in resulting criteria query, example:
List<User> users = criteria().
select(User.class,attribute(User_.id), attribute(User_.name),
attribute(Tweet_.content)).
join(User_.tweets,
where(Tweet.class,javax.persistence.criteria.JoinType.LEFT).
likeIgnoreCase(Tweet_.content, "%tweet%")).
distinct().
createQuery().setFirstResult(0).setMaxResults(2).
getResultList();
in example above I was not able to select the column named 'content' from
Tweet table.
Any ideas? thanks in advance.
--
Att,
Rafael M. Pestano
Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul
http://rpestano.wordpress.com/
@realpestano
Re: Criteria select attribute from relashionship
Posted by Rafael Pestano <rm...@gmail.com>.
Hey guys, sorry for resurrecting such email but someone can tell me if this
is a limitation or if it can be done with DeltaSpike criteria?
Thanks in advance!
Em qua., 20 de jul. de 2016 às 15:15, Rafael Pestano <rm...@gmail.com>
escreveu:
> Using Jpa criteria it is something like:
>
> CriteriaBuilder builder = em.getCriteriaBuilder();
> CriteriaQuery<User> query = builder.createQuery(User.class);
> Root<User> root = query.from(User.class);
> Join<User, Tweet> join = root.join(User_.tweets,
> javax.persistence.criteria.JoinType.LEFT);
> CriteriaQuery<User> select = query.
>
> where(builder.like(builder.lower(join.get(Tweet_.content)), "%tweet%")).
> distinct(true).
> multiselect(root.get(User_.id),root.get(User_.name),
> join.get(Tweet_.id), join.get(Tweet_.content), join.get(Tweet_.likes));
> //select(root); all fields
> List<User> users =
> em.createQuery(select).setFirstResult(0).setMaxResults(2).getResultList();
>
> is it possible with deltaspike criteria?
>
> 2016-07-19 10:56 GMT-03:00 Rafael Pestano <rm...@gmail.com>:
>
>> Hi guys,
>>
>> I have a OneToMany relashionship between entities A and B and want to
>> select atributes from B in resulting criteria query, example:
>>
>> List<User> users = criteria().
>> select(User.class,attribute(User_.id), attribute(User_.name),
>> attribute(Tweet_.content)).
>> join(User_.tweets,
>>
>> where(Tweet.class,javax.persistence.criteria.JoinType.LEFT).
>> likeIgnoreCase(Tweet_.content, "%tweet%")).
>> distinct().
>> createQuery().setFirstResult(0).setMaxResults(2).
>> getResultList();
>>
>>
>> in example above I was not able to select the column named 'content' from
>> Tweet table.
>>
>> Any ideas? thanks in advance.
>>
>>
>>
>> --
>> Att,
>>
>> Rafael M. Pestano
>>
>> Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul
>> http://rpestano.wordpress.com/
>> @realpestano
>>
>
>
>
> --
> Att,
>
> Rafael M. Pestano
>
> Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul
> http://rpestano.wordpress.com/
> @realpestano
>
--
Rafael M. Pestano
Senior Backend Engineer at Mobiquity Inc.
http://rpestano.wordpress.com/
@realpestano
Re: Criteria select attribute from relashionship
Posted by Rafael Pestano <rm...@gmail.com>.
Using Jpa criteria it is something like:
CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<User> query = builder.createQuery(User.class);
Root<User> root = query.from(User.class);
Join<User, Tweet> join = root.join(User_.tweets,
javax.persistence.criteria.JoinType.LEFT);
CriteriaQuery<User> select = query.
where(builder.like(builder.lower(join.get(Tweet_.content)),
"%tweet%")).
distinct(true).
multiselect(root.get(User_.id),root.get(User_.name),
join.get(Tweet_.id), join.get(Tweet_.content), join.get(Tweet_.likes));
//select(root); all fields
List<User> users =
em.createQuery(select).setFirstResult(0).setMaxResults(2).getResultList();
is it possible with deltaspike criteria?
2016-07-19 10:56 GMT-03:00 Rafael Pestano <rm...@gmail.com>:
> Hi guys,
>
> I have a OneToMany relashionship between entities A and B and want to
> select atributes from B in resulting criteria query, example:
>
> List<User> users = criteria().
> select(User.class,attribute(User_.id), attribute(User_.name),
> attribute(Tweet_.content)).
> join(User_.tweets,
>
> where(Tweet.class,javax.persistence.criteria.JoinType.LEFT).
> likeIgnoreCase(Tweet_.content, "%tweet%")).
> distinct().
> createQuery().setFirstResult(0).setMaxResults(2).
> getResultList();
>
>
> in example above I was not able to select the column named 'content' from
> Tweet table.
>
> Any ideas? thanks in advance.
>
>
>
> --
> Att,
>
> Rafael M. Pestano
>
> Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul
> http://rpestano.wordpress.com/
> @realpestano
>
--
Att,
Rafael M. Pestano
Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul
http://rpestano.wordpress.com/
@realpestano