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 :

JPA débutant Schema "blablah" cannot be resolved for table "blahblah"


Sujet :

JPA Java

  1. #1
    Membre confirmé
    Avatar de irnbru
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2004
    Messages : 316
    Points : 500
    Points
    500
    Billets dans le blog
    1
    Par défaut JPA débutant Schema "blablah" cannot be resolved for table "blahblah"
    Hello à tous, j'utilise eclipse 3.3, mysql 5 et j'ai créé un projet jpa.

    Dans un premier temps j'ai créé une connection MySql. Pas de soucis, je vois toutes mes tables dans Data Source Explorer.

    Je souhaite créer un projet JPA en dehors de tout conteneur et hibernate comme moteur.

    J'ai donc fait appel à l'assistant JPA, j'ai précisé la connection précédente pour MySQL, j'ai créé une library d'implémentation JPA hibernate en ajoutant tous les jar d'hibernate core, annotations, entity manager.

    Une fois le projet généré, j'ai fait généré les entities à partir de la base de données. Les classes pojo avec annotations ont été bien générées par contre eclipse de plaint dès la première annotation @Entity avec

    Schema "yyyy" cannot be resolved for table "xxx"

    bizzarement yyyy représente mon user name de ma connection.
    Comment résoudre en précisant le bon schéma?

    Merci

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2008
    Messages : 33
    Points : 37
    Points
    37
    Par défaut
    Bonjour,
    Je ne sais pas si ce que suit vous aidera, mais je me lance quand même
    Votre problème est étrange, et je n'ai jamais utilisé l'assistant d'Eclipse pour configurer ma connection à la base de données. Je suppose que cet assistant génère un fichier du type persistence.xml qui doit être placé dans le répertoire META-INF. Si c'est le cas, toutes les informations saisies dans l'assistant y sont et vous devriez voir une ligne qui vous permettra de corriger le schéma.

  3. #3
    Membre confirmé
    Avatar de irnbru
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2004
    Messages : 316
    Points : 500
    Points
    500
    Billets dans le blog
    1
    Par défaut
    Hello, d'abord merci de prendre la peine de m'aider !

    Je pense avoir résolu le problème, mais je cherche à comprendre mieux le fonctionnement interne du plug-in Dali d'Eclipse (surement un fan de l'artiste à l'origine du projet).

    En fait le problème était que lors de la création de mon projet JPA dans l'url de connection j'avais mis "jdbc:mysql://localhost:3306/" il fallait en fait préciser le schéma à utiliser lors de la connexion. Sinon Dali utiliser par défaut le nom du login de connexion. Je ne sais pas si c'est le cas pour d'autres outils utilisant le JPA (hibernate tools par exemple).

    En remplacant jdbc:mysql://localhost:3306/ par jdbc:mysql://localhost:3306/xxxx avec xxx le schéma à utiliser, cela fonctionne mieux Cela serait bien de trouver plus de doc et tutoriaux sur JPA en général et JPA/Eclipse en particulier

    Cheers
    IRNBRU

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 298
    Points : 484
    Points
    484

  5. #5
    Membre confirmé
    Avatar de irnbru
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2004
    Messages : 316
    Points : 500
    Points
    500
    Billets dans le blog
    1
    Par défaut
    Merci spidetra pour ces infos

    J'aurai aimé connaitre ton avis aussi sur ce problème.

    Je remarque donc les faits suivants

    Quand je génère une connection SQL vers MySQL avec l'url complète jdbc:mysql://localhost:3306/monschema, Dali se plaint pourtant une fois les entities générées:

    "Schema "irnbru" cannot be resolved for table "xxxxx"

    Il semble que lorsqu'une connection SQL est active dans la perspective Dali, Dali vérifie en temps réel si la classe Entity est correcte. (ce qui est cool cela évite d'attendre des erreurs au runtime)

    Mais si vous ne précisez pas de Schema soit dans ORM soit dans l'annotation @Table, alors Dali utilise par défaut le login de votre connection comme schéma par défaut ! bizzare :s

    Si j'enlève la connection SQL active du project JPA, Dali m'informe qu'il ne peut plus faire de controles de mes entities et l'erreur "Schema "irnbru" cannot be resolved for table "xxxxx" disparait en conséquence. En plus j'enlève de l'annotation @Table le schema à savoir @Table(schema = "monschema") qui est viré de l'entity

    Je teste ainsi l'application et cela fonctionne bien car le schéma était précisé dans mon url de connection de toute façon!

    Du coup je suis un peu perturbé car je ne comprends pas bien comment fonctionne Dali au niveau des Schémas, si quelqu'un peut m'éclairer sur ce point et cette politique d'utiliser le login comme schéma par défaut par Dali cela serait génial, et s'il y a un moyen de modifier le schéma par défaut du projet JPA de façon propre et standard!


    Merci
    IRNBRU

  6. #6
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 298
    Points : 484
    Points
    484
    Par défaut
    Citation Envoyé par irnbru Voir le message
    Merci spidetra pour ces infos

    J'aurai aimé connaitre ton avis aussi sur ce problème.
    Désolé, je n'utilise pas Dali, je n'ai pas d'avis.

  7. #7
    Membre confirmé
    Avatar de irnbru
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2004
    Messages : 316
    Points : 500
    Points
    500
    Billets dans le blog
    1
    Par défaut
    alors qu utilises tu? hibernate tools? as tu des liens des ressources que je peux utiliser? Merci.

    IRNBRU

  8. #8
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 298
    Points : 484
    Points
    484
    Par défaut
    Sur mes projets, je travaille "from scratch", du modèle vers la base de donnée.
    Tant que je n'ai pas de problématique de reverse engineering, j'annote mes classes avec mes petites mimines sans outils particuliers.

    En cas de besoins de reverse j'irai plus naturellement vers JBossTools ( http://www.jboss.org/tools/). Juste parceque j'ai démarré hibernate en utilisant les hibernates tools.

    Je n'ai pas eu l'occasion d'approfondir Dali, juste quelques tests comme ça sans plus, donc je en sais pas ce que ça vaut.

  9. #9
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    De mémoire, il faudrait créer un fichier orm.xml au même niveau que le persistence.xml avec les attributs par défaut (dont le schema)

    Il me semble même qu'on pouvait le créer à partir d'un assistant...

    A+

  10. #10
    Membre confirmé
    Avatar de irnbru
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2004
    Messages : 316
    Points : 500
    Points
    500
    Billets dans le blog
    1
    Par défaut
    Merci spidetra pour ta reponse, cela sert de savoir comment faire autrement.

    Merci OButterlin effectivement j'avais envisage la piste de l orm.xml qui est l equivalent de fichier xml mapping de hibernate j imagine pour jpa. peux tu me fournir un exemple avec le schema par default?

    je posterai mes recherche de mon cote evidemment
    merci encore

    IRNBRU

  11. #11
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Exemple de fichier orm.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?xml version="1.0" encoding="UTF-8"?>
    <entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"
        version="1.0">
        <persistence-unit-metadata>
            <persistence-unit-defaults>
                <schema>espionng</schema>
            </persistence-unit-defaults>
        </persistence-unit-metadata>
    </entity-mappings>
    A+

  12. #12
    Membre confirmé
    Avatar de irnbru
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2004
    Messages : 316
    Points : 500
    Points
    500
    Billets dans le blog
    1
    Par défaut
    Cheers Je mettrai à jour ce post si je trouve d'avantage d'informations sur ce point de Dali.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/04/2011, 10h43
  2. Plugin JPA et schema
    Par troubleshooting dans le forum JPA
    Réponses: 0
    Dernier message: 07/04/2009, 15h59
  3. Réponses: 3
    Dernier message: 26/10/2006, 18h21

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