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 :

Annotation Column name ref_lang of com.recordz.ejb.entity.Message not found in JoinCo


Sujet :

JPA Java

  1. #1
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut Annotation Column name ref_lang of com.recordz.ejb.entity.Message not found in JoinCo
    Encore une nouvelle erreure de mapping

    voici mes tables

    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
     
     
     
    DROP TABLE IF EXISTS `type`;
    CREATE TABLE `type` (
      `id_type` int(4) NOT NULL AUTO_INCREMENT,
      `text` text NOT NULL,
      PRIMARY KEY  (`id_type`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
     
    DROP TABLE IF EXISTS `lang`;
    CREATE TABLE `lang` (
      `id_lang` int(4) NOT NULL AUTO_INCREMENT,
      `name` text NOT NULL,
      PRIMARY KEY  (`id_lang`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    DROP TABLE IF EXISTS `message`;
    CREATE TABLE `message` (
      `id_message` int NOT NULL,
      `text` text NOT NULL,
      `ref_type` int(4),
      `ref_lang` int(2) NOT NULL,  
      FOREIGN KEY `FK_MESSAGE_TYPE` (`ref_type`) REFERENCES `type` (`id_type`),
      PRIMARY KEY  (`id_message`,`ref_lang`),
      FOREIGN KEY `FK_MESSAGE_LANG` (`ref_lang`) REFERENCES `lang` (`id_lang`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    Mon entity Message contient

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     @Lob
        @Column(name = "text", nullable = false)
        private String text;
     
        @JoinColumn(name = "ref_type", referencedColumnName = "id_type")
        @ManyToOne
        private Type refType;
     
        @JoinColumn(name = "ref_lang", referencedColumnName = "id_lang")
        @ManyToOne
        private Lang lang;
    Problème quand je déploie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Column name ref_lang of com.recordz.ejb.entity.Message not found in JoinColumns.referencedColumnName
    org.hibernate.AnnotationException: Column name ref_lang of com.recordz.ejb.entity.Message not found in JoinColumns.referencedColumnName
    En sachant que dans Lang j ai bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     @Id
        @Column(name = "id_lang", nullable = false)
        private Integer idLang;
    Quelqu un aurait une idée ?

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    J ai tenté de renomé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       @JoinColumn(name = "ref_lang", referencedColumnName = "id_lang")
        @ManyToOne
        private Lang lang;
    en
    private Lang refLang; mais rien n'y fait ... j ai modifié encore dans le script bd ref_lang en ref_lang int(4) mais rien n y fait non plus

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    bon c est une limittation de JPA à première vue, il faut remplacé le mapping

    ManyToOne sur refLang et int vu que cet identifiant fait partie de la clef primaire et d'une foreign key

Discussions similaires

  1. [EJB3 Entity] Partage d'ejb entity entres applications, named queries
    Par kristof_machin dans le forum Java EE
    Réponses: 3
    Dernier message: 22/01/2008, 11h04
  2. Réponses: 1
    Dernier message: 10/05/2006, 12h11
  3. Réponses: 4
    Dernier message: 25/01/2006, 18h25
  4. [Oracle Lite 10g]ORA-00957: duplicate column name
    Par maredami dans le forum Oracle
    Réponses: 4
    Dernier message: 02/11/2005, 13h13
  5. [EJB Session] class not found exception ?
    Par champion dans le forum Wildfly/JBoss
    Réponses: 4
    Dernier message: 11/02/2005, 23h46

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