Consulta com Hibernate

Como eu faço essa consulta funcionar, O que há de errado que não funciona.

//Consulta com o Hiberante para Localizar a empresa que tem o menor preço
	public List<ProdutoEmpresa> buscamenorpreco(Long id,Long cod) {
	return session.createCriteria(ProdutoEmpresa.class)
	.addOrder(Order.asc("preco"))
	.createCriteria("produto")
	.add(Restrictions.eq("id",id))
	.createCriteria("empresa")
	.createCriteria("bairro")
	.add(Restrictions.eq("id",cod))
	.list();

Obrigadão.

		}

Se você falar qual o erro fica mais fácil. [=

br.com.caelum.vraptor.InterceptionException: exception raised, check root cause for details: org.hibernate.QueryException: could not resolve property: bairro of: br.com.softsol.compresempre.modelo.Produto

org.hibernate.QueryException: could not resolve property: bairro of: br.com.softsol.compresempre.modelo.Produto

Diz que não encontra a propriedade bairro em Produto. Mas ele não deveria procurar em Empresa?

Nossa, nem tinha percebido isso. Como eu faço para ele buscar o cod do bairro em Empresa, e não em Produto.
Porque realmente o Produto não tem bairro, que tem bairro e Empresa.rsrs.

Valeu.