IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java EE Discussion :

Multiple Variable et ClassCastException


Sujet :

Java EE

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Multiple Variable et ClassCastException
    Bonjour

    J'esseye de mettre en place la recherche dans un EJB CMP. Dans le déscripteur de déploiment je configure mon EJB CMP avec la requette suivate :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT object(o) FROM Investissement o WHERE o.flagSupp is NULL AND CHAR(o.magasinId) IN ( ?1 ) AND CHAR(o.etatcourant) IN ( ?2 )
    Mes 2 paramètres d'entrée sont des java.lang.String

    Lors du l'exécution j'obtient l'erreur suivante :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    com.ibm.ws.ejbpersistence.utilpm.PersistenceManagerException: PMGR6022E: Erreur d'utilisation de l'adaptateur pour créer ou exécuter une interaction. com.ibm.ws.rsadapter.cci.WSInteractionImpl@24dd7d43
    	at com.ibm.ws.ejbpersistence.dataaccess.DataAccessRequestImpl.execute(Unknown Source)
    	at com.ibm.ws.ejbpersistence.beanextensions.ConcreteBeanStatefulInstanceExtensionImpl.executeQuery(Unknown Source)
    ....
     
    Caused by: java.lang.ClassCastException: java.lang.String
    	at com.bricodepot.investissement.ejb.websphere_deploy.ORACLE_V9_1.InvestissementBeanFunctionSet_721c59b0.FindInvestMagasinWithEtat(Unknown Source)

    D'ou vient l'erreur les type sont bien coéhrents car l'id est convertie en String pour effectuer la comparaison !!!

    Pouvez vous m'aider ?

    Merci

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2005
    Messages : 63
    Points : 163
    Points
    163
    Par défaut
    bonjour,

    est ce que les propriétés magasinId et etatcourant sont des integer ?
    est ce que tes paramètres d'entrée sont des string de la forme :
    "integer1, integer2, integer3" ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Les paramètres magasinID et etatcourant sont des Integer qui sont en suite transtyper en String dans la requete grace à CHAR(magasinID), les deux paramètres d'entrée sont des java.lang.String de la forme ('1','104','44') et ('12','32').

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2005
    Messages : 63
    Points : 163
    Points
    163
    Par défaut
    Est ce que tu peux essayer un truc du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT object(o) FROM Investissement o WHERE o.flagSupp is NULL AND o.magasinId MEMBER OF ?1 AND o.etatcourant MEMBER OF ?2
    avec tes paramètres d'entrée qui sont des listes d'integer

    Il me semble, à valider, que le "IN" ne peux pas s'employer avec des paramètres passés au finder par contre tu peux l'utiliser si tu faisais un IN sur des constantes en 'dur' dans ta requête.

    Un petit lien assez vieux mais pas mal :
    http://www.onjava.com/pub/a/onjava/2001/09/19/ejbql.html?page=2

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    J'ai esseyer de mettre des paramètres en dure dans l'appli mais sa marche pas !
    Dans la documentation de référenc de Sun, on peut mettre des paramètre d'entrée (ex ?1) dans la close IN, mais visiblement sa ne fonctionne pas !

    Il existe un moyen avec les Dynamic Query, mais c'est plus compliquer (plus long) à mettre en oeuvre !

    Avez vous des pistes ?

    Merci

Discussions similaires

  1. Multiples vérifications sur multiples variables
    Par Morby dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 03/01/2012, 17h25
  2. [matlab] Equation différentielle à multiples variables
    Par Bulveye dans le forum Mathématiques
    Réponses: 1
    Dernier message: 10/02/2011, 14h46
  3. faire une selection multiple de feuilles en fonction de variables
    Par blackhelmet dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/10/2006, 10h32
  4. Clause sur multiples champs 1 variable
    Par hugo69 dans le forum Débuter
    Réponses: 1
    Dernier message: 06/10/2006, 17h10
  5. bouton radio a variables multiples
    Par edenyorke dans le forum Langage
    Réponses: 9
    Dernier message: 04/05/2006, 02h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo