Galera estou com um problema pra entender algumas coisas no JOIN do JPA 2.
publicvoidtestCriteriaUsuario(){em=emf.createEntityManager();CriteriaBuildercb=em.getCriteriaBuilder();CriteriaQuery<Usuario>cq=cb.createQuery(Usuario.class);Root<Usuario>usuario=cq.from(Usuario.class);Join<Usuario,Grupo>uj=usuario.join("idGrupo").join("id");//NÃO ESTOU CONSIGUINDO ENTENDER A STRING DENTRO DO JOIN DEVE ESTAR INCORRETA. COMO SERA QUE É FEITO???TypedQuery<Usuario>tqq=em.createQuery(cq.multiselect(uj));//ESTE TAMBEM ESTOU COM PROBLEMA.List<Usuario>usuariosCriteria=tqq.getResultList();for(Usuariousuario1:usuariosCriteria){System.out.println(usuario1.getNomeCompleto());}
public class Usuario() {
Integer id;
String nome;
String login;
String senha;
Grupo grupo;
}
public class Grupo() {
Integer id;
String descricao;
}
O JOIN acima tem como objetivo fazer o relacionamento entre essas duas classes, alguem poderia como fazer este joins usando Criteria do JPA 2.
usando meta modelos, segue um exemplo que esta no link
CriteriaQuery<Person>personCriteria=builder.createQuery(Person.class);Root<Person>personRoot=person.from(Person.class);// Person.address is an embedded attributeJoin<Person,Address>personAddress=personRoot.join(Person_.address);// Address.country is a ManyToOneJoin<Address,Country>addressCountry=personAddress.join(Address_.country);
Obrigado pela resposta, porém não gostaria de usar meta modelos, gostaria de um exemplo usando “String” parecido com o exemplo acima que postei no inicio do tópico.
Estou usando JPA2 puro com TopLink.
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<String> cq = cb.createQuery(String.class);
Root<Usuario> usuario = cq.from(Usuario.class);
Join<Usuario, Grupo> grupo = usuario.join<Grupo>("grupo"); // Está dando erro nesta linha, o erro é referente ao generico <Grupo> no join.
Obrigado pela ajuda…se souber o porque do erro agradeço.
bruno.neves
Cara não querendo ser chato…mas você poderia postar um exemplo completo retornando o select do join em uma lista, andei procurando na net, porem existe pouco material sobre isso e não consegui resolver esse problema.
Obrigado por enquanto…
Lavieri
bruno.neves:
Cara não querendo ser chato…mas você poderia postar um exemplo completo retornando o select do join em uma lista, andei procurando na net, porem existe pouco material sobre isso e não consegui resolver esse problema.
Obrigado por enquanto…
agora não estou aqui om o JPA2, mas no link que eu coloquei mais acima, tem esse exemplo, entre varios outros… o uso dos meta modelos são iguais ao não uso deles… a única diferença é que vc vai por STRING no lugar do meta modelo…
E
erickfm8
Pessoal eu tambem estou com o mesmo problema do nosso amigo bruno, alguem mais poderia nos ajudar postando um exemplo completo de joins com “String” eu li o link do nosso amigo mais mesmo assim não consegui implementar
OBRIGADO