Pesquisar pelo campo... org.hibernate.QueryException: could not resolve property:

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?

por desespero, modifiquei o usuario_id para "usuario"
e deu outra exception:

br.com.caelum.vraptor.InterceptionException: exception raised, check root cause for details: org.hibernate.PropertyAccessException: could not get a field value by reflection getter of br.loja.modelo.Usuario.id

Só q a classe do Usuario possui SIM o getter do id…
??

Parece que você ta passando um campo que não existe na hora da consulta:
could not resolve property: usuario_id of: br.loja.modelo.Item

Como você mapeou sua classe e como você está chamando o método genérico?