MAMSPJ 30 de jun. de 2009
1. @ SuppressWarnings ( "unchecked" )
2. public Classificacao obterPorGrupoEscore ( Long cdGrupo , Long vlEscore ) {
3. Criteria criteria = get Session () . createCriteria ( Classificacao . class , "classificacao" );
4. criteria . createAlias ( "classificacao.perguntaAvaliacaoGrupo" , "pag" );
5. criteria . add ( Restrictions . ge ( "classificacao.valorEscoreMinimo" , vlEscore ));
6. criteria . add ( Restrictions . le ( "classificacao.valorEscoreMaximo" , vlEscore ));
7. criteria . add ( Restrictions . eq ( "pag.cdPerguntaAvaliacaoGrupo" , cdGrupo ));
8. List & lt ; Classificacao & gt ; list a = criteria . list ();
9. if ( list a ! = null && list a . size () & gt ; 0 ) {
10. return ( Classificacao ) list a . get ( 0 );
11. } else {
12. return null ;
13. }
14. }
Vou passar um escore por parametro e quero que me retorne … o registro que tem a classificação com escore passado dentro da faixa entre vlEscoreMinimo e vlEscoreMaximo
Considerando o escore 5, com SQL faria assim :
1. Select * from CLASSIFICACAO where 5 between VL_ESCORE_MINIMO and VL_ESCORE_MAXIMO
Select * from CLASSIFICACAO where 5 between VL_ESCORE_MINIMO and VL_ESCORE_MAXIMO