Bonjour à tous,
J'utilise Hibernate 2 et j'ai une requête toute bête que je veux faire en SQL natif vu qu'il s'agit de récupérer un Max d'un champ qui en base est un varchar:
Voici mon code:
Code:
public static String findNextNoReglByCodeSynd(String codeSynd) {
List list = new ArrayList();
Session session = HibernateUtil.getSession();
Transaction tx = null;
try {
tx = session.beginTransaction();
String req = "SELECT MAX(TO_NUMBER(NO_REGL)) "
+ "FROM ART_LST_REGL_GEO "
+ "WHERE COMPTEUR_NO_REGL LIKE '"
+ codeSynd
+ "%'";
list = session.find(req);
tx.commit();
} catch (Exception e) {
LOGGER.error(e.getMessage(), e);
}
return (list.size() != 0) ? list.get(0).toString() : "1";
}
Malheureusement j'ai une erreur et hibernate me retourne :
Code:
net.sf.hibernate.QueryException: ( expected before ) in select [SELECT MAX(TO_NUMBER(NO_REGL)) FROM ART_LST_REGL_GEO WHERE COMPTEUR_NO_REGL LIKE 'DEP056A%']
Je ne comprends pas ce qui embête hibernate... et vu que je retourne un type primitif je ne peux pas utiliser la fonction Hibernate createSQLQuery(String, String, Class).
Merci d'avance a ceux qui répondront.