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

JPA Java Discussion :

Appel de procedure


Sujet :

JPA Java

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2007
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 401
    Points : 153
    Points
    153
    Par défaut Appel de procedure
    Salut

    Comment, en JPA, puis exécuter une procédure?

    Je suis en train de faire ainsi:

    EntityManager em = ...
    ...
    sQuery = "EXEC package.procedure(param1, param2)";
    em.createNativeQuery(sQuery).executeUpdate();

    Cependant, cela me génère l'erreur suivante:
    ORA-00900: invalid SQL Statement

    En exécutant la query via SQLPLUS, elle marche...

    Merci

  2. #2
    Expert éminent

    Avatar de christopheJ
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 600
    Points : 8 235
    Points
    8 235
    Par défaut
    J'ai eu la même erreur mais en plus la procédure était vraiment exécutée..
    Les procédures stockées ne sont pas adressées par la spécification de JPA.

    Il faut passer "à l'ancienne" par un CallableStatement.
    L'idéal est d'utiliser la connection fourni par l'EntityManager car tu profites alors de la gestion de transaction du container, par contre tu sera obligé de passer par les classes spécifiques de l'implémentation de JPA que tu utilises.

  3. #3
    Membre habitué
    Inscrit en
    Octobre 2007
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 401
    Points : 153
    Points
    153
    Par défaut
    Ok, merci pour ta réponse.

    Je suis nouveau en JPA. Comment puis-je obtenir une Connection à partir de mon EntityManager? Je ne vois aucune méthode pour...

    merci

    Citation Envoyé par christopheJ Voir le message
    J'ai eu la même erreur mais en plus la procédure était vraiment exécutée..
    Les procédures stockées ne sont pas adressées par la spécification de JPA.

    Il faut passer "à l'ancienne" par un CallableStatement.
    L'idéal est d'utiliser la connection fourni par l'EntityManager car tu profites alors de la gestion de transaction du container, par contre tu sera obligé de passer par les classes spécifiques de l'implémentation de JPA que tu utilises.

  4. #4
    Expert éminent

    Avatar de christopheJ
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 600
    Points : 8 235
    Points
    8 235
    Par défaut
    Cela va dépendre de l'implémentation de JPA que tu utilises.
    Peux-tu nous donner son nom (Toplink, Toplink essentials, Hibernate, Kodo, ...)

  5. #5
    Membre habitué
    Inscrit en
    Octobre 2007
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 401
    Points : 153
    Points
    153
    Par défaut
    J'utilise Toplink Essentials...

    Citation Envoyé par christopheJ Voir le message
    Cela va dépendre de l'implémentation de JPA que tu utilises.
    Peux-tu nous donner son nom (Toplink, Toplink essentials, Hibernate, Kodo, ...)

Discussions similaires

  1. Appels de procedures stockées dans une proc stockée ?
    Par Nadaa dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 17/07/2008, 10h32
  2. [langage]& dans appel de procedure
    Par Batou dans le forum Langage
    Réponses: 15
    Dernier message: 30/06/2005, 09h20
  3. appeler une procedure d'un sous formulaire
    Par kchrel dans le forum Access
    Réponses: 11
    Dernier message: 19/10/2004, 17h42
  4. Réponses: 3
    Dernier message: 21/09/2004, 07h35
  5. Réponses: 1
    Dernier message: 04/06/2003, 11h48

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