Galera,
estou usando um DaoGenerico que possui o seguinte método:
public List<E> pesquisar(String campo, String argumento) throws Exception {
Criteria criteria = HibernateUtil.getSession().createCriteria(clazz);
criteria.add(Expression.ilike(campo, argumento, MatchMode.ANYWHERE));
return criteria.list();
}
Estou usando o VRaptor, e to criando um controlador pra buscar os Items que um determinado usuario comprou…
Ai ao chamar o método do ItemDao, deu a expcetion:
SEVERE: Servlet.service() for servlet [default] in context with path [/vraptor-blank-project] threw exception
br.com.caelum.vraptor.InterceptionException: exception raised, check root cause for details: org.hibernate.QueryException: could not resolve property: usuario_id of: br.loja.modelo.Item
at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:96)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
...
veja a classe item:
@Entity
public class Item {
@Id @GeneratedValue
private Long id;
@ManyToOne
private Usuario usuario;
@OneToOne
private Produto produto;
private Integer quantidade;
No banco, os dados gerados são:
+----+------------+------------+------------+
| id | quantidade | produto_id | usuario_id |
+----+------------+------------+------------+
| 9 | 1 | 10 | 1 |
+----+------------+------------+------------+
1 row in set (0.00 sec)
ai tô chamando o método assim:
@Restrito
@Get @Path("/minhasCompras")
public List<Item> minhasCompras() throws Exception{
return itemDao.pesquisar("usuario_id", usuarioWeb.getUsuario().getId().toString());
}
PS: dei toString pq o método ta como String String…
O engraçado é que tenho um método de busca, que utilizo o mesmo metodo só q para produtos
public List<Produto> busca(String nome) throws Exception{
result.include("nome", nome);
return dao.pesquisar("nome", nome);
}
…e funciona de boa… alguem me ajuda?