Hibernate Projections Collection

4 respostas
F

Galera to com um Problema olhem o seguinte código

o super.objClass é do tipo ContaReceber

Criteria c = super.session.createCriteria(super.objClass,"cr")	
		
		.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
		.setResultTransformer(new AliasToBeanResultTransformer(super.objClass));
		
		ProjectionList projectionList = Projections.projectionList().create();
		
		projectionList.add(Projections.property("cr.crCod"),"crCod")
		.add(Projections.property("cr.crDataVencimento"),"crDataVencimento")
		.add(Projections.property("cr.crDataRecebimento"),"crDataRecebimento")
		.add(Projections.property("cr.crValorRecebido"),"crValorRecebido");
		
		c.setProjection(projectionList);
		
		Criteria cPedido = c.createCriteria("cr.pedido","pedido",Criteria.LEFT_JOIN);
		//.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
		//.setResultTransformer(new AliasToBeanResultTransformer(Pedido.class));;
		
		projectionList.add(Projections.property("pedido.pedCod"),"pedCod")
						.add(Projections.property("pedido.pedTotal"),"pedTotal");
		
		
		cPedido.setProjection(projectionList);

		List<ContaReceber> lista = c.list();

Esse código faz a pesquisa certa no banco e busca os valores certos..

Porém ao invés de no lista aparecer varios ContasReceber aparecem varios Objetos com os valores que vinheram do BD dai fica muito trabalhoso.

Alguém sabe como fazer os danadinhos aparecerem certos

Obrigado pela atenção

4 Respostas

J

E ae…

O fato de vc utilizar projections faz com que o objeto retornado não seja mais o objeto mapeado. Ou vc traz todo o objeto, se não tiver problemas de overhead, ou vc utiliza resultTransformer, de forma que os objetos retornados possam ser mapeados para um determinado bean.

Abraço…

F

Foi o que eu tentei utiliza ResultTransformer

Olha só

Criteria c = super.session.createCriteria(super.objClass,"cr")    
   
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)  
.setResultTransformer(new AliasToBeanResultTransformer(super.objClass));

Mas Retorno um Objeto[] com os valores :(

Não consegui entender..

Eu preciso pegar sómente alguns dados do banco.. Se toda vez eu buscar todos os campos do BD vai pesar muito a APP..

Mas obrigado pela atenção vou ver o que eu faço aqui :D

J

Certo.

ResultTransformer é meio burocratico mesmo. No ultimo projeto em que trabalhei eu fiz uma implementação de uma classe ResultTransformer. Chegando em casa dou uma olhada em alguns fontes antigos e vejo se me recordo os detalhes.

Outra coisa, vi que é de Cascavel. Como ta o mercado Java ai? Tenho familiares ai, pode ser que um dia eu vá aí!.

Abraços…

F

Olha o Mercado aqui não ta nada bom…
Muitos querem que os caras sejam magos e ganhando pouco… Intão é complicado…

Eu to procurando emprego em outras cidades… Hoje to trabalhando de FreeLancer mas quero um emprego fixo…

PS. Se alguém souber de alguma vaga por ai fico grato :smiley:

Criado 6 de janeiro de 2009
Ultima resposta 8 de jan. de 2009
Respostas 4
Participantes 2