Utiliser des champs calculé dans un criteria Hibernate
Bonsoir,
mon problème paraît simple mais il ne l'est pas tant que ça :)
Je rencontre un problème pour ordonner un champs d'une requête.
Actuellement je ramène les valeurs dans cet ordre :
1
10
2
3
.. jusqu'à
9
Je souhaiterais les ramener dans cet ordre:
1
2
3
.. jusqu'à
10
Le champs en question est de type String.
Je souhaiterais donc le convertir dans mon modèle Hibernate en Integer ou Double pour que les valeurs du champs ramenées soient correctement ordonnées.
J'utilise la requête Hibernate suivante :
Code:
1 2 3
| DetachedCriteria controlPointsCriteria = DetachedCriteria.forClass(ControlPoints.class);
controlPointsCriteria.add(Restrictions.eq(ControlPoints.CPO_PREPARATION_PHASE, preparationPhase));
controlPointsCriteria.addOrder(Order.asc("cpoRefNumCalc")); |
Où mon champs "cpoRefNumCalc" représente un champs calculé dans mon modèle Hibernate:
Code:
1 2 3 4 5 6 7 8 9 10 11
|
@Formula(value = "cast(cpoRefNum as signed)")
private double cpoRefNumCalc;
public double getCpoRefNumCalc() {
return cpoRefNumCalc;
}
public void setCpoRefNumCalc(double cpoRefNumCalc) {
this.cpoRefNumCalc = cpoRefNumCalc;
} |
Cela devrait fonctionner, mais le champs calculé n'est pas remplacé dans la requête effectuée par Hibernate.
J'obtiens une requête SQL du type :
Code:
1 2 3
| select this_.cpoRefNumCalc as cpoRefNu7_8_1_
from CONTROL_POINTS this_ inner join PREPARATION_PHASES preparatio2_ on this_.CPO_FK_PHASE_ID=preparatio2_.PRP_ID
order by this_.cpoRefNumCalc asc |
J'ai essayé de trouvé d'autres solutions mais je bloque là.
Avez-vous une piste svp ?
Merci de votre aide,
berni.