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 fonction sql


Sujet :

JPA Java

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2003
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 78
    Par défaut Appel de fonction sql
    Bonjour,

    Je dois appeler une fonction sql qui prend une liste de paramètres en entrée depuis un EJB 3.0 stateless.

    Le code suivant JDBC permetde le faire:
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
    		OracleDataSource ods;
    		try {
    			// Connexion à la base
    			ods = new OracleDataSource();
    			String url = "***";
    			ods.setURL(url);
    			ods.setUser("***");
    			ods.setPassword("**");
    			Connection conn = ods.getConnection();
    			System.out.println("Connexion OK");
     
    			// Définition des deux listes de produits à rechercher
    			String[] pl1 = {"000000", "000001"};
    			//String[] pl1 = {"039710", "046636"};
     
    			// Appel de la procédure stockée
    			OracleCallableStatement cs = (OracleCallableStatement) conn.prepareCall ("begin ? := pck_common_register.find_similar_mffund_list(?); end;");
    			cs.registerOutParameter(1, OracleTypes.NUMBER);
     
    			cs.setPlsqlIndexTable(
    				2, 						// Identifiant de l'argument
    				pl1, 					// Tableau des valeurs
    				pl1.length, 			// Longueur max
    				pl1.length, 			// Longueur réelle
    				OracleTypes.VARCHAR, 	// Typage 
    				6						// Longueur maxi d'un argument dans le tableau
    			);
    			cs.execute();
     
    			if(cs.getInt(1) == 0) {
    				System.out.println("Aucune liste identique trouvée");
    			} else {
    				System.out.println("Liste trouvée : "+cs.getInt(1));
    			}
     
    			conn.close();
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    Comment traduire cela en syntaxe JPQL?

    Merci.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 74
    Par défaut
    Citation Envoyé par aloha Voir le message
    Bonjour,

    Je dois appeler une fonction sql qui prend une liste de paramètres en entrée depuis un EJB 3.0 stateless.

    Le code suivant JDBC permetde le faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    			OracleCallableStatement cs = (OracleCallableStatement) conn.prepareCall ("begin ? := pck_common_register.find_similar_mffund_list(?); end;");
    Comment traduire cela en syntaxe JPQL?

    Merci.
    L'invocation d'un proc stock depuis du jpql n'a pas vraiment de sens... JPQL est un langage de requêtage objet. Sans remettre en cause le besoin d'invoquer cette proc stock (bien plus adapté à faire du traitement de masse que ce que l'etre jpql), il te faudra faire exactement le meme code.
    Par contre, si cette procédure stockée doit s'exécuter dans la même transaction que celle activée pour ton entityManager actif, il te faudra plutot opter pour récupérer la connexion jdbc auprès du pool de ton serveur d'appli (via jndi) qui prendra le soin de récupérer la connexion associée à ton contexte JTA plutôt que d'ouvrir manuellement ta connexion tout seul (spec jta).

    Hope this help

Discussions similaires

  1. [CR 10] appeler une fonction SQL
    Par yosboss dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 12/07/2011, 14h05
  2. appel des fonction sql sous C++
    Par R.Seif dans le forum C++
    Réponses: 6
    Dernier message: 29/04/2010, 13h33
  3. Comment creer et appeler une fonction sql..
    Par denissay dans le forum Langage SQL
    Réponses: 7
    Dernier message: 05/01/2008, 22h28
  4. appel de fonction sql server 2005
    Par kazoumoulox dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/07/2007, 13h03
  5. Appel de fonction d'une DLL en TANSAC SQL
    Par sylvain114d dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/01/2006, 10h21

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