HIBERNATE, CRITERIA, CONSULTAS... Me ajudem, por favor!

4 respostas
P

Pessoal,

Tenho que fazer uma consulta com o hibernate, sendo que é um join.
Tenho uma tabela de produtos e uma de preços.

Ouvi que tenho que usar o criteria… mas não tenho idéia de como é… e to sem muito tempo… preciso entregar essa parada amanhã!

Alguém pode me ajudar?

4 Respostas

lucascaton

Eu também estou com problemas com minha consulta, mas sei que é algo mais ou menos assim:

Vamos supor que suas classes sejam assim:
public class Produto{
	Long id;
	String descricao;
	Preco preco;
}

public class Preco{
	Long id;
	Double precoUnitario;
}
A busca será realizada mais ou menos assim:
//Declaração do criteria:
Criteria criteria = sessao.createCriteria(Produto.class);

//Incluir restrição, onde é buscado a palavra "exemplo1" em qualquer lugar da coluna "descricao" da tabela "produto":
criteria.add(Restrictions.like("descricao", "exemplo1", MatchMode.ANYWHERE));

//Incluir restrição, onde é buscado a palavra "exemplo2" em qualquer lugar da coluna "precoUnitario" da tabela "preco":
criteria.createCriteria("preco").add(Restrictions.like("precoUnitario", "exemplo2", MatchMode.ANYWHERE));

//Retorno da lista de objetos do tipo "Produto":
List<Produto> listaDeResultados = criteria.list();

Por favor, me corrijam se eu estiver errado. Obrigado.

T

abaixo segue um exemplo:

public List listAll() {
		
		Session sessao = sessionFactory.getCurrentSession();
		sessao.beginTransaction();
		
                try {
							
			Query criteria = sessao.createQuery("select * from Tabela");	
			List queryList = criteria.list();
						
			return queryList;
		} catch (RuntimeException re) {
			throw re;
		}
	}
gugaa_df
trinka:
abaixo segue um exemplo:
public List listAll() {
		
		Session sessao = sessionFactory.getCurrentSession();
		sessao.beginTransaction();
		
                try {
							
			Query criteria = sessao.createQuery("select * from Tabela");	
			List queryList = criteria.list();
						
			return queryList;
		} catch (RuntimeException re) {
			throw re;
		}
	}

Ele mencionou CRITERIA e não HQL...
Para faze é da forma como o lucascaton mencionou.

faelcavalcanti

lembre-se que no uso de critéria para associações como no seu caso use Restriction, para agregações use Projections.

Criado 28 de setembro de 2008
Ultima resposta 28 de set. de 2008
Respostas 4
Participantes 5