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

Eclipse Java Discussion :

Problème de compilation avec persistance


Sujet :

Eclipse Java

  1. #1
    Membre confirmé
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 168
    Par défaut Problème de compilation avec persistance
    Bonjour

    J'obtiens le message suivant pour certains attributs d'une classe de persistance :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Target entity "maclasse" for "monattribut" is not an entity.
    Pourtant maclasse est correctement déclaré avec le tag @Entity
    J'ai d'autres déclarations du même type qui ne posent aucun problème et je ne vois aucune différence...
    Lorsque je lance la compil avec maven ca marche, c'est juste la compil d'eclipse qui plante...
    Une idée ?

  2. #2
    Membre éclairé Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut
    Bonjour, pourrait-on avoir tout le code erreur? Merci

  3. #3
    Membre confirmé
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 168
    Par défaut
    Si tu veux, mais il n'y a pas grand chose de plus a voir ! J'ai fait un "copier" de l'erreur dans ma vue "problems" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Description	Resource	Path	Location	Type
    Target entity "svc.modele.ValeurExtendedKeyUsage" for "extendedKeyUsage" is not an Entity	PolitiqueDeValidation.java	SVC_persistance_jpa1.3.3/src/app/svc/modele	line 42	Validation Message
    La ligne de code qui déclenche l'erreur de compil est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        @OneToMany(cascade = { ALL })
        private Set<ValeurExtendedKeyUsage> extendedKeyUsage;
    Et la classe correspondant au "target entity" de l'erreur commence comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @Entity
    public class ValeurExtendedKeyUsage {

  4. #4
    Membre éclairé Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut
    je pourrai voir le code de ta classe PolitiqueDeValidation.java si c'est possible? Et aussi pour le code erreur, c'est juste 2 lignes?

  5. #5
    Membre confirmé
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 168
    Par défaut
    J'ai rajouté qq infos dans mon message précédant et voici le début de la classe PolitiqueDeValidation

    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
    @Entity
    public class PolitiqueDeValidation implements Serializable {
     
        private static final long serialVersionUID = 1L;
     
        @Id
        @GeneratedValue
        private int id;
     
        @OneToMany(cascade = ALL)
        private Set<OIDPolitiqueCertification> politiquesCertificationAutorisees;
     
        @ManyToMany(cascade = { MERGE, PERSIST, REFRESH })
        private Set<CheminCertFinal> cheminsAutorises;
     
        @OneToMany(cascade = { ALL })
        private Set<ValeurKeyUsage> keyUsage;
     
        @OneToMany(cascade = { ALL })
        private Set<ValeurExtendedKeyUsage> extendedKeyUsage;
    Les champs id, politiquesCertificationAutorisees et cheminsAutorises ne posent pas de problème par contre les 2 suivants donnent une erreur de compil.
    Le code d'erreur ne contient rien de plus.

  6. #6
    Membre éclairé Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut
    Recapitulon, la relation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @OneToMany(cascade = { ALL })
        private Set<ValeurExtendedKeyUsage> extendedKeyUsage;
    de la table PolitiqueDeValidation doit être pareil mais inversement dans la table ValeurExtendedKeyUsage, c'est à dire avoir une relation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @ManyToOne
    @JoinColumns({name="...", referencedColumnName="..."})
    @JoinColumns({name="...", referencedColumnName="..."})
    ...//s'il y a plusieurs jointure de colonne
        private PolitiqueDeValidation politiqueDeValidation;
    juste savoir si c'est le cas?
    aussi pourquoi forcément cascade = {ALL} pourquoi ne pas mapper à la table avec laquelle il y a jointure dans les colonnes?
    Merci

  7. #7
    Membre confirmé
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 168
    Par défaut
    Non ce n'est pas le cas, il n'y a rien de ce genre dans la classe ValeurExtendedKeyUsage car je n'utilise pas de colonne de jointure mais une table de jointure.
    Ne me demande pas pourquoi c'est fait comme ca : je n'en ai aucune idée ! Ce code a été écrit par qq d'autre et il fonctionne très bien, je dois juste faire qq modifs mineures et ce problème de compil sous eclipse m'énerve même s'il ne m'empêche pas de tester le programme en compilant directement avec maven...

  8. #8
    Membre éclairé Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut
    ok, si c'est avec une table de jointure, l'on devrait avoir dans la classe PolitiquedeValidation ce code là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    @OneToMany(cascade = { ALL }, mappedBy = "PolitiqueDeValidation_Id")
        private Set<ValeurExtendedKeyUsage> extendedKeyUsage;
    et dans la classe ValeurExtendedKeyUsage, l'on devrait avoir ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    @ManyToOne
    @JoinColumn(name="PolitiqueDeValidation_Id")
    private PolitiqueDeValidation PolitiqueDeValidation_Id;
     
    @ManyToMany
    @JoinTable(name = "PolitiqueDeValidation", 
    joinColumns = {@JoinColumn(name = "...", referencedColumnName = "...")},
    inverseJoinColumns = {@JoinColumn(name = "...", referencedColumnName = "..."), 
    @JoinColumn(...)
    private set<NomDeTable> nomDeTable;
    le NomDeTable n'est pas PolitiquedeValidation.

    Avant de l'importer sous eclipse, ce projet a été conçu avec quel IDE?
    Merci

    PS: puis-je avoir le lien du tuto pour voir tout ça de plus prêt?

  9. #9
    Membre confirmé
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 168
    Par défaut
    Je n'ai pas tout ce code... Et pourtant mon programme est correct vu qu'il tourne ! De plus les tables sont générées automatiquement par le script ant "org.hibernate.tool.ant.HibernateToolTask" a partir de ce code et ca me crée bien les tables de jointure comme il faut... J'ai pas trop envie de commencer a modifier des directives dans tous les sens alors que la modif que je suis sensée faire n'a rien a voir avec ca...
    Et ca ne m'explique pas pourquoi j'ai cette erreur de compil sur certains attributs mais pas sur d'autres alors qu'ils sont tous développés pareil !
    Ce projet a été développé sous Eclipse depuis le début...

  10. #10
    Membre éclairé Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut
    Si vous ne changez rien à vos codes, vous n'allez jamais savoir ce qui ne tourne pas rond? vous êtes en informatique et il n'y pas de reponse toute faite sur un problème précis, c'est par des manipulations qu'on arrive a des résultats et on obtient des solutions données.

    A vos propos, celà me dit que vous ne cherche pas à comprendre le fonctionnement des lignes de codes, mais seulement qu'on vous donne la solution et que vous utilisiez l'application sans plus

    Concernant cette erreur de compil, il vous indique bien que la table ValeurExtendedKeyUsage que vous référencez dans la classe ValeurExtendedKeyUsage en tant qu'entité n'en est pas une. Ce qui veut dire que vos tables comme vous le dite générées par le script ant "org.hibernate.tool.ant.HibernateToolTask" ne crée pas la table ValeurExtendedKeyUsage. Je vous conseille de voir de ce côté.

    Et au départ vous ne m'avez pas dit que les tables étaient générées automatiquement, je pensais à des entités de classes générées depuis une base de donnée précise, encore désolé.

  11. #11
    Membre confirmé
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 168
    Par défaut
    En effet je n'y connais rien en persistance et le problème c'est que je n'ai pas le temps d'apprendre en détail comment ca marche ! On m'a imposé de faire des modifs sur un projet qui n'est pas le mien mais je ne peux pas me permettre de tout modifier juste pour que ca compile sous mon eclipse....
    Pour info la table ValeurExtendedKeyUsage est correctement créée par le script, en plus elle est toute bete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    create table ValeurExtendedKeyUsage (id integer not null auto_increment, primary key (id));
    Si ca fonctionne sous l'eclipse du mec qui bosse dessus habituellement (et qui est en vacances) pourquoi ca ne compilerait pas chez moi !
    En résumé, je lache l'affaire pour l'instant et je compile uniquement avec maven : pas très pratique mais au moins ca me permet d'avancer dans mes dev.
    Et au retour de vacances j'essaierai de voir avec le responsable de ce projet ce qui cloche...
    Merci de ton aide...

  12. #12
    Membre éclairé Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut
    Ok, pas de soucis. Sinon, c'est vrai que dans le script il est mentionné de créer une table mais avez-vous vérifié dans la BDD si la table y est vraiment? et quelle BDD utilise votre collègue pour faire ses tests?

    En ce qui concerne les modifs sur le projet, vous faites un enrégistrer sous et vous pouvez apporter votre touche différente de celle votre collègue, c'est ce qui est excellent en dev.

    Aller, bon aprèm

Discussions similaires

  1. Problème de compilation avec Borland : Direct Draw
    Par Burckel dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 26/09/2005, 19h17
  2. Problème de compilation avec Direct Input
    Par di-giac dans le forum DirectX
    Réponses: 6
    Dernier message: 06/05/2005, 19h19
  3. [MFC] Problème de compilation avec afxctl.h
    Par mick74 dans le forum MFC
    Réponses: 7
    Dernier message: 15/06/2004, 14h51
  4. Problème de compilation avec Dev-C++
    Par Rouliann dans le forum Dev-C++
    Réponses: 14
    Dernier message: 14/06/2004, 19h44
  5. Réponses: 1
    Dernier message: 29/10/2003, 13h16

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