Hibernate Somar propriedades na ordenação usando a API CRITERIA

6 respostas
bcruz

Olá pessoal … estou com o seguinte problema.

Preciso faz um rank dos X mais, o problema está nos dados que eu preciso verificar.

tenho as propriedades P1 e P2

queria fazer

alguma ajuda?

6 Respostas

von.juliano

Acho que o que você quis dizer foi fazer o seguinte, certo?

select nome from tabela Z order by P1, P2Que para fazer com Criteria fica:

Criteria c = session.createCriteria(Whatever.class); c.addOrder("P1"); c.addOrder("P2");Vê se é isso! Flw! :thumbup:

bcruz

Obrigado Juliano pela atenção

mas a questão é que eu estou querendo que a ordenação seja feita pela soma das duas propriedades e não de uma delas e em caso de igualdade pela outra.

VLwww

maschiojv

Eu fiz uma xunxera aqui que deu certo, mas eu não aconselho

na tua classe Whatever vc inclui uma propriedade soma

@Column(name="P1 + P2")
public int getSoma(){
       return soma;
}

public void setSoma(int soma){}
dai usa soma na ordenação
Criteria c = session.createCriteria(Whatever.class);  
c.addOrder("soma");

gambiarra total! XD

bcruz

Obrigado pela atenção …

eu uso hbm ao invés de annotation … esse @Column define uma nova coluna no banco??

porque se for o caso … não vale a pena. melhor usar HQL

Vlww

maschiojv

[quote=bcruz]Obrigado pela atenção …

eu uso hbm ao invés de annotation … esse @Column define uma nova coluna no banco??

porque se for o caso … não vale a pena. melhor usar HQL

Sim, define uma coluna.

Concordo com você, é melhor usar hql

bcruz

eu pensei em criar uma coluna fake somente no retorno do select … como em

SQL convencional

deste ponto dava um alias e depois ordenava por ele, mas não consegui nada perto disso.

Vlw

Criado 17 de fevereiro de 2009
Ultima resposta 18 de fev. de 2009
Respostas 6
Participantes 3