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

Hibernate Java Discussion :

Ajouter un package de classe annotées


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 371
    Par défaut Ajouter un package de classe annotées
    Bien le bonjour,

    Je cherche à indiquer à la configuration Hibernate un ensemble de classes annotées, qui définissent dans leurs annotations seules, l'intégralité du mapping avec ma base de données.

    Je me passe de tous les fichiers de configuration hibernate pour réaliser l'intégralité de la configuration du mapping via code :

    Code java : 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
    AnnotationConfiguration config = new AnnotationConfiguration();
    config.setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect")
    .setProperty("hibernate.connection.driver_class", driverName)
    .setProperty("hibernate.connection.url", connectString)
    .setProperty("hibernate.connection.username", userName)
    .setProperty("hibernate.connection.password", password);
     
    config.setProperty("hibernate.connection.pool_size", "4");
    config.setProperty("hibernate.connection.autocommit", "true");
    config.setProperty("hibernate.cache.provider_class", "org.hibernate.cache.NoCacheProvider");
    config.setProperty("hibernate.transaction.factory_class", "org.hibernate.transaction.JDBCTransactionFactory");
    config.setProperty("hibernate.current_session_context_class", "thread");                 
     
    //  ici ça marche //config.addAnnotatedClass(MaClasse.class);
    //  là ça ne marche pas // config.addPackage("mon.package.annoté");
     
    SessionFactory sessionFactory = config.buildSessionFactory();
    session = sessionFactory.openSession();
    session.beginTransaction();
     
    ...
     
     
    session.createQuery( ... )

    Si j'ajoute toutes les classes une par une, à coups de addAnnotatedClass, je vais réussir à les utiliser plus loin dans le code.
    Cependant si je passe simplement par addPackage, hibernate m'indiquera une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Caused by: org.hibernate.hql.ast.QuerySyntaxException: [le nom de mon entité] is not mapped
    Certes je pourrais ajouter dans ce bout de code une ligne pour chacune de mes classes mappées, mais je souhaiterais m'abstraire de cette tâche. Est-ce possible ? Une méthode config.addAnnotatedPackage ferait vraiment mon affaire ...

    Ai-je mal fait quelque chose ?

  2. #2
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 371
    Par défaut
    Après quelques recherches j'ai le sentiment que mon problème est lié à l'impossibilité de pouvoir lister les classes d'un package donné.
    Pour l'instant j'en suis réduit à lire le .jar qui contient mon package et à itérer sur tous les éléments qu'il contient pour repérer ceux dont le nom correspond à mon package, puis de les déclarer dans la configuration Hibernate.

    Mais c'est très artisanal.

  3. #3
    Membre chevronné Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Par défaut
    si tu as besoin de lister les classes d'un package, j'ai réalisé une classe utilitaire permettant de répondre a ce besoin.
    Ayant eut ce besoin et n'ayant rien trouvé de bien propre, j'ai essayé de regrouper les différentes informations que j'ai pu trouver lors de mes recherches.

    Tu trouveras plus d'info sur cette page

    Il est également possible de filtrer les classes à rechercher.
    Si tu as des suggestion, n'hésite pas a m'en faire part.

    En espérant que ca te soit utile !

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    accessoirement, addPackage n'ajoute pas les classe du package, ca ajoute les annotations spécifiques du package (soit donc les annotations présentes dans le fichier package-info.java)

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

Discussions similaires

  1. Ajouter des méthodes à une classe annotée
    Par ThomasEscolan dans le forum Langage
    Réponses: 2
    Dernier message: 04/09/2012, 17h29
  2. Ajouter un package
    Par Mic75 dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 13/10/2006, 13h57
  3. Réponses: 10
    Dernier message: 20/09/2006, 17h04
  4. [EXPORT] Comment ajouter des packages au .jar ?
    Par djskyz dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 12/08/2004, 23h23
  5. [Netbeans] Ajout de package?
    Par wjb dans le forum NetBeans
    Réponses: 3
    Dernier message: 17/05/2004, 15h41

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