@NamedQuery(name="Categoria.getDescricao",query="SELECT c FROM categ c WHERE c.descricao like :descricao")
G
Gu1lherme
ja tentei sim…
acredito que o problema possa ser algo com configuração ou com as libs, pq tenho outro projeto que funciona tudo normal.
obrigado… ^^ …
G
Gu1lherme
se eu uso o código:
return(List<CategoriaDeFuncionalidade>)this.em.createQuery("SELECT c FROM categ c WHERE c.descricao like :descricao")//createNamedQuery("Categoria.getDescricao").setParameter("descricao",desc+"%").getResultList();
funciona… mas queria utilizar “NamedQueries”.
Alguem pode me dar uma solução??
T
thiagovedder
Gu1lherme:
se eu uso o código:
return(List<CategoriaDeFuncionalidade>)this.em.createQuery("SELECT c FROM categ c WHERE c.descricao like :descricao")//createNamedQuery("Categoria.getDescricao").setParameter("descricao",desc+"%").getResultList();
funciona… mas queria utilizar “NamedQueries”.
Alguem pode me dar uma solução??
Sei la, chute total, mas mudando o nome da query, pra Categoria.busca, o erro persiste?
G
Gu1lherme
rs… essa d chute total é boa…
ja tentei mudar mas n mudou nada, continuou com o erro… mas valeu pelo palpite…
T
thiagovedder
Pensei que fosse algo relacionado a ter um atributo descrição e com o nome da query com o mesmo nome de um get daria problema.
Estranho mesmo, tente trocar os jars do Hibernate para ver se resolve. Eu atualmente uso NamedQueries sem problema…
@Entity@NamedQueries({@NamedQuery(name="searchNextRace",query="select c from Corrida c where c.dataCorrida > current_date() order by c.dataCorrida asc")})
ja estou utilizando essas classes no projeto, mas o engraçado é que os jars e as consultas estao similares a outro projeto aqui que ja finalizei com sucesso, e n sei porque nesse ta dando esse erro. vou tentar outros jars pq acredito q o problema seja com jars ou com configuração.
Valeu pela ajuda, se tiver mais alguma ideia, sera bem vinda…
esse erro não acontece se eu faço referencia a uma tabela de outro projeto (primeira query), mas quando faço referencia a tabela categoria não funciona.
@Entity@Table(name="categoria")@NamedQueries({@NamedQuery(name="Funcionario.getTodos",query="SELECT o FROM Funcionario o")FUNCIONA//@NamedQuery(name="Categoria.getDescricao",query="SELECT c FROM categoria c WHERE c.descricao =:descricao")NÃOFUNCIONA//@NamedQuery(name="Categoria.getDescricao",query="SELECT c FROM Categoria c WHERE c.descricao like :descricao")NÃOFUNCIONA//@NamedQuery(name="Categoria.getTodos",query="SELECT o FROM categoria o ORDER BY o.descricao")NÃOFUNCIONA})
Obs: a tabela “categoria” é criada e até consigo inserir mas qualquer tipo de consulta por NamedQuery acusa esse erro.
T
thiagovedder
Oi Guilherme, passa então como está essa classe e os XML’s de mapeamento
por favor, da uma olhada ai porque já estou pirando com esse problema…
Valeu pela ajuda…
G
Gu1lherme
packagenovopatrimonio.seguranca.entidades;importjavax.persistence.Column;importjavax.persistence.Entity;importjavax.persistence.GeneratedValue;importjavax.persistence.GenerationType;importjavax.persistence.Id;importjavax.persistence.NamedQueries;importjavax.persistence.NamedQuery;importjavax.persistence.Table;@Entity@Table(name="categoria")@NamedQueries({//@NamedQuery(name="Funcionario.getTodos",// query="SELECT o FROM Funcionario o"),//@NamedQuery(name = "Categoria.getDescricao", query = "SELECT c FROM categ c WHERE c.descricao =:descricao")@NamedQuery(name="Categoria.getDescricao",query="SELECT o FROM Categoria o")//@NamedQuery(name = "Categoria.getTodos", query = "SELECT o FROM categ o ORDER BY o.descricao")})publicclassCategoriaDeFuncionalidadeimplementsjava.io.Serializable{privatestaticfinallongserialVersionUID=1L;@Id@GeneratedValue(strategy=GenerationType.TABLE)privateLongid;@Column(name="descricao")privateStringdescricao;publicLonggetId(){returnid;}publicvoidsetId(Longid){this.id=id;}publicStringgetDescricao(){returnthis.descricao;}publicvoidsetDescricao(Stringdescricao){this.descricao=descricao;}}
T
thiagovedder
Na sua named query, vc não deveria estar fazendo a consulta contra CategoriaDeFuncionalidade, em vez de categoria, visto que esse somente é o nome da tabela na base?
G
Gu1lherme
Bingo!!!
Finalmente deu certo… Meu erro é justamente o que você falou, mas fiquei confuso do porque não posso fazer referência ao nome da tabela.
Muito obrigado pela ajuda…
T
thiagovedder
Blz! As vezes pequenos detalhes nos causam grandes problemas.
Coloque [RESOLVIDO] no título do tópico pra identificar resolução!
G
Gu1lherme
já coloquei o RESOLVIDO… ^^ …
mas vc poderia me explicar pq n posso fazer referencia ao nome da tabela?
Vlw…
T
thiagovedder
Acho q pra vc rodar o SQL propriamente dito, vc deve usar @NamedNativeQuery
Tenta e ve se funciona contra as tabelas.