Dúvida com hibernate e example

3 respostas
J

Galera, estou com a seguinte dúvida:

Tenho uma classe chamada Produto e ela possui uma referência para a classe Fabricante (ManyToOne).

No meu DAO o método que pesquisa os dados está assim:

public List<Produto> pesquisarTodos(Produto produto, Class<Produto> clazz) throws ProdutoException {
		DetachedCriteria criteria;
		try {
			criteria = DetachedCriteria.forClass(clazz);
			Example example = Example.create(produto);
			example.excludeZeroes();
			example.enableLike(MatchMode.START);
			example.ignoreCase();

			criteria.add(example);
			criteria.addOrder(Order.asc("id"));
		} catch (DataAccessException exception) {
			throw new ProdutoException("Ocorreu um erro ao pesquisar: " + produto.getNome(), exception);
		}
		return getHibernateTemplate().findByCriteria(criteria);
	}

Há um formulário de pesquisa onde o usuário digita o nome do produto e o método retorna os produtos com o nome digitado. Há também uma lista de fabricantes nesse formulário, onde o usuário pode selecionar para listar os produtos por fabricante. Só que ao selecionar o fabricante, o método não retorna os produtos do fabricante selecionado.

As duas propriedades chegam no método: nome e id do frabricante

Está faltando algum detalhe ?

Agradeço qualquer ajuda.

Obrigado.

3 Respostas

ACDias

O Example não busca por associações (no seu caso: pelo fabricante).
Não sei o porque disso, mas seria uma mão na roda se isso fosse implementado.

J

E como eu poderia fazer isso ? Qual seria a outra forma ?

Obrigado.

ACDias

Do jeito manual. Com Criteria, HQL ou SQL nativo.

Este link em específico explica como fazer o que você quer com criteria
http://www.hibernate.org/hib_docs/reference/en/html/querycriteria-associations.html

Criado 3 de abril de 2009
Ultima resposta 3 de abr. de 2009
Respostas 3
Participantes 2