Olá, pessoal!!
Estou aprendendo JPA, como criar query da JPA, mas como eu acostuma criar query nativo veja codigo 1, mas estou pouco meio complicado a implementar query da JPA por causa a logica.
Código 1
select f.*
from feed f
inner join professor p
on f.autor = p.matriculaProfessor
inner join turma t
on t.professor = p.matriculaProfessor
inner join notas n
on n.turma = t.codTurma
inner join aluno a
on n.aluno = a.matriculaAluno
inner join usuario u
on a.usuario = u.idUsuario
where u.idUsuario = 2
Veja o modelo ER que criei
Esse modelo ER foi gerar automático pelo Netbeans a estutura pronta das entidades.
Como escrever os joins e classes em filtro… esse é pouco mais complexo. por exemplo Classe professor não tem chave estrageira da Feed e Turma, só eles recebe chave estrangueiras da Professor. Estou pouco meio confudido como criar na JPA.
Olá, pessoal!
Estou tentando criar query na criteria com junção, mas não consegui funciona… a query nativo em cima e tentando criar JPA Criteria em baixo.
[code]
public List getListFeddByUsuario(Usuario u) {
EntityManager em = getEntityManager();
List list = new Vector();
try {
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Feed> query = cb.createQuery(Feed.class);
Root<Professor> rp = query.from(Professor.class);
Root<Turma> rt = query.from(Turma.class);
Root<Notas> rn = query.from(Notas.class);
Root<Aluno> ra = query.from(Aluno.class);
Root<Usuario> ru = query.from(Usuario.class);
query.where(cb.equal(ru, u));
Query q = em.createQuery(query);
list = q.getResultList();
} finally {
em.close();
}
return list;
}[/code]
Mas o erro apareceu, veja em baixo:
Local Exception Stack:
Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column ‘codFed’ in 'field list’
Error Code: 1054
Call: SELECT codFed, assunto, dataPublicar, descricao, autor FROM lpii_tf_agenda2.usuario WHERE (idUsuario = ?)
bind => [1 parameter bound]
Query: ReadAllQuery(referenceClass=Feed sql=“SELECT codFed, assunto, dataPublicar, descricao, autor FROM lpii_tf_agenda2.usuario WHERE (idUsuario = ?)”)
at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:333)
Aguardo ao retorno, obrigado!