Bonjour,
Voila mon code
voila ma requete nommé dans mon fichier hbm:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 public Integer getNumberOperationByCriteria(Integer status, Integer category, CalendarDate accountingDate, Set profitCenterSet) throws ApisTechnicalException { String date = accountingDate.toString(ApisCoreConstants.databaseDatePattern); Integer result = null; try { Query query = getPersistenceManager().getNamedQuery(Prrt.QUERY_GET_NUMBER_OPERATION_BY_CRITERIA); query.setString("status", String.valueOf(status)); query.setString("category", String.valueOf(category)); query.setInteger("date", Integer.valueOf(date).intValue()); query.setString("profitCenter", buildString(profitCenterSet)); result = (Integer) query.uniqueResult(); getPersistenceManager().flush(); } catch (HibernateException e) { e.printStackTrace(); throw new ApisTechnicalException("TECHNICAL_EXCEPTION", null, e); } return result; }
Cette fonction est appelé par une boucle, la premiere fois où je l'appelle tout se passe bien mais à la deuxieme j'ai le message suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <query name="PRRT.get_number_operation_by_criteria"> <![CDATA[ select count(prrt) from Prrt prrt where prrt.prrtStus like :status and prrt.prrtCatgoper like :category and prrt.prrtDateacnt = :date and prrt.prrtRcen IN (:profitCenter) ]]> </query>
23/01/07 11:24:55:024 CET] 6140614 JDBCException W org.hibernate.util.JDBCExceptionReporter SQL Error: 1722, SQLState: 42000
[23/01/07 11:24:55:087 CET] 6140614 JDBCException E org.hibernate.util.JDBCExceptionReporter ORA-01722: invalid number
org.hibernate.exception.GenericJDBCException: could not execute query
at java.lang.Throwable.<init>(Throwable.java)
at java.lang.Throwable.<init>(Throwable.java)
at org.hibernate.exception.NestableRuntimeException.<init>(NestableRuntimeException.java:124)
at org.hibernate.JDBCException.<init>(JDBCException.java:20)
at org.hibernate.JDBCException.<init>(JDBCException.java:25)
at org.hibernate.exception.ErrorCodeConverter.handledNonSpecificException(ErrorCodeConverter.java:92)
at org.hibernate.exception.ErrorCodeConverter.convert(ErrorCodeConverter.java:80)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.loader.Loader.doList(Loader.java:1596)
at org.hibernate.loader.Loader.list(Loader.java:1577)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:395)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:271)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:844)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:74)
at org.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:603)
at ............
Caused by: java.sql.SQLException: ORA-01722: invalid number
J'ai pris la requete sql généré par hibernate:
En debug j'ai recupéré les valeurs de chaque parametre et j'ai pu execute ma requete sql dans toad sans probleme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part select count(prrt0_.PRRT_OPRF) as col_0_0_ from PRRT prrt0_ where (prrt0_.PRRT_STUS like ?) and (prrt0_.PRRT_CATGOPER like ?) and prrt0_.PRRT_DATEACNT=? and (prrt0_.PRRT_RCEN in (?))
Je comprends vraiment pas d'où viens le probleme.
Partager