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 :

Remplacer le fichier persistence.xml par du code


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut Remplacer le fichier persistence.xml par du code
    Bonjour,

    Je me demandais s'il était possible de remplacer le fichier persistence.xml par du code ?

    Pour avoir plus de souplesse, je préférerais configurer de manière programmatique les paramètres de JPA, surtout dans le but de faciliter ensuite la modularisation de mon application.

    Est-ce que c'est possible de tout programmer avec les Properties ?

    Merci beaucoup

    Baptiste

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 156
    Par défaut
    Si c'est pour modulariser ton appli, la stratégie serait d'avoir plusieurs fichiers persistence.xml qui seraient placés et valorisés judicieusement en fonction de ton besoin, avec ton outil de build (Maven, Ant etc ..).
    Néanmoins il semblerait que cela soit en partie possible. En tout cas dans le cas de l'implementation JPa avec hibernate, cela est documenté.

  3. #3
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Comme j'utilise Hibernate comme provider, il faudrait alors que j'utilise EJB3Configuration ?

    Il n'y a rien de plus générique dans JPA ?

    Merci

  4. #4
    Membre chevronné Avatar de bassim
    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Février 2005
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 666
    Par défaut
    Bonsoir,

    en gros ,voilà comment je fais pour changer par programmation les propriétés de mon fichier de persistance :
    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
    private void initContext(){
     
     
            File url = new File("OpticaDB"); // le dossier de la BDD
     
            Map<String, String> prop = new HashMap<String, String>();
            prop.put("toplink.jdbc.user", "user");
            prop.put("toplink.jdbc.password", "mot de passe");
            prop.put("toplink.jdbc.url", "jdbc:derby:"+ url.getPath());
            prop.put("toplink.jdbc.driver", "org.apache.derby.jdbc.EmbeddedDriver");
     
            fabrique = Persistence.createEntityManagerFactory("Optica2.1PU",prop);
     
            em = fabrique.createEntityManager();
     
        }
    Edit: il faut noter que le fichier persistence.xml existe déjà dans l'exemple que j'ai donné !

  5. #5
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Je connais effectivement ta méthode bassim, mais le problème est qu'avec cette méthode, je ne peux changer que les propriétés et non pas ajouter des classes par exemple.

    Je vais essayer de faire quelque chose avec la classe EJB3Configuration, on verra ce que ça donne.

  6. #6
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    J'ai réussi avec la classe EJB3Configuration

    Pour ceux que ça intéresse, voici à quoi ressemble mon code :

    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
     
    Ejb3Configuration config = new Ejb3Configuration();
     
    //Persistent classes		
    config.addAnnotatedClass(FilmToBuyImpl.class);
     
    //Hibernate logs
    config.setProperty("hibernate.show_sql", "true");
    config.setProperty("hibernate.format_sql", "true");
    config.setProperty("use_sql_comments", "false");
     
    //JDBC Connexion
    config.setProperty("hibernate.connection.driver_class", Constantes.Data.Database.DRIVER);
    config.setProperty("hibernate.connection.url", Constantes.Data.Database.COMPLETE_URL);
    config.setProperty("hibernate.connection.username", Constantes.Data.Database.USER);
    config.setProperty("hibernate.connection.password", Constantes.Data.Database.PASSWORD);
     
    //Hibernate Dialect
    config.setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect");
     
    //SQL Schema generator
    config.setProperty("hibernate.hbm2ddl.auto", "update");
     
    emf = config.buildEntityManagerFactory();

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Impossible de lire le fichier persistence.xml
    Par saveriu dans le forum JPA
    Réponses: 3
    Dernier message: 08/04/2009, 09h34
  2. Appel d'une action dans un fichier xml par un code vb.net
    Par sihamsisim dans le forum VB.NET
    Réponses: 5
    Dernier message: 20/02/2009, 16h52
  3. Réponses: 0
    Dernier message: 12/02/2009, 12h39
  4. Modifier un fichier de configuration par le code
    Par Nuloprog dans le forum C#
    Réponses: 5
    Dernier message: 30/01/2009, 18h07
  5. Réponses: 3
    Dernier message: 29/10/2008, 14h37

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