Bom dia raikk0n3n,
Você poderia postar sua classe TesteHql.
Obrigada
Bom dia raikk0n3n,
Você poderia postar sua classe TesteHql.
Obrigada
Da uma olhada em como seu método esta retornando a lista, veja se ela não está nula.
Estou problema numa consulta:
Jul 17, 2012 2:11:31 AM org.hibernate.hql.ast.ErrorCounter reportError
Grave: line 1:1: unexpected token: listatrabalho
Exception in thread "main" java.lang.IllegalArgumentException: node to traverse cannot be null!
at org.hibernate.hql.ast.util.NodeTraverser.traverseDepthFirst(NodeTraverser.java:31)
at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:254)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:157)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:77)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:56)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623)
at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:93)
at br.med.fetus.beans.BeanGeneric.ListByDate(BeanGeneric.java:77)
at br.med.fetus.beans.ListaTrabalhoBeans.findByDate(ListaTrabalhoBeans.java:58)
at br.med.fetus.db.TesteHql.main(TesteHql.java:34)
NamedQuery
@Entity
@Table(name="listaTrabalho")
@NamedQuery(name="listatrabalho.data", query="select lt from ListaTrabalho as lt where lt.dataDia = :dataDia")
public class ListaTrabalho implements Serializable {
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
private Long id;
@OneToOne
private Prontuario prontuario;
@Temporal(TemporalType.DATE)
private Date dataDia;
@Enumerated(EnumType.STRING)
private TipoConsulta tipoConsulta;
@Enumerated(EnumType.STRING)
private HorarioConsulta horarioConsulta;
public class TesteHql {
public static void main(String arg[]){
SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
s.format(date);
ListaTrabalhoBeans ls = new ListaTrabalhoBeans();
List<ListaTrabalho> lts = new ArrayList<ListaTrabalho>();
lts = ls.findByDate("listatrabalho.data", "dataDia", date);
for (ListaTrabalho lt : lts){
System.out.println("Nome " + lt.getProntuario().getPaciente().getNome());
}
}
Resolvido
era um erro de atenção
Estava assim o metodo
objects = manager.createQuery(namedQuery).setParameter(field, data).getResultList();
Na realidade o certo é assim!
objects = manager.createNamedQuery(namedQuery).setParameter(field, data).getResultList();