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

Java EE Discussion :

[BES] Mapping automatique et clés étrangères [EJB2.1 Entity]


Sujet :

Java EE

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 16
    Points : 12
    Points
    12
    Par défaut [BES] Mapping automatique et clés étrangères
    Encore une question BES (5.2)...

    Une entité Test a une clé primaire Id de type Integer. Elle est liée par une relation 1:N à une entité Damage. Au niveeau BD (Oracle), la table T_TEST a une clé primaire TEST_ID de type NUMBER(10). Cette clé est aussi clé étrangère dans la table T_DAMAGE.

    Le problème est que le serveur Borland mappe le champ T_DAMAGE.TEST_ID en java.lang.BigDecimal et non en Integer et refuse donc de parcourir la relation. Le message d'erreur est:
    java.rmi.ServerException: T_TEST.TEST_ID with type of class java.lang.Integer cannot refer to T_DAMAGE.TEST_ID with type of class java.math.BigDecimal.
    J'ai tenté sans succès de modfier le mapping en ajoutant une propriété createColumnSql à T_DAMAGE.TEST_ID:
    <table-properties>
    <table-name>T_DAMAGE</table-name>
    <column-properties>
    <column-name>TEST_ID</column-name>
    <property>
    <prop-name>createColumnSql</prop-name>
    <prop-type>java.lang.String</prop-type>
    <prop-value>NUMBER(10)</prop-value>
    </property>
    </column-properties>
    ...
    La solution de facilité serait d'utiliser BigDecimal pour les types des clés primaires mais c'est déconseillé par la spéc Borland. Le problème est similaire avec BES 5.2.1.

    Des idées ?

    Baptiste

  2. #2
    Membre éprouvé
    Avatar de request
    Inscrit en
    Novembre 2002
    Messages
    328
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 328
    Points : 1 248
    Points
    1 248
    Par défaut
    Ce n'est pas le serveur BES qui t'as proposé le mapping BigDecimal, c'est toi dans ton projet dans ejb-borland.xml.

    J'imagine que tu utilises JBuilder et que tu as utilisé le wizard. Par défaut il map le Number(10) dans un BigDecimal, mais tu peux changer cela, soit dans les paramètres des tables, soit sur l'entity créés. Tu remplaces BigDecimal par Interger (c'est ce que nous faisons sur tous les projets, il n'y a pas de problème).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        <table-properties>
            <table-name>TABLE</table-name>
            <column-properties>
                <column-name>TABLEID_ID</column-name>
                <property>
                    <prop-name>columnJavaType</prop-name>
                    <prop-type>java.lang.String</prop-type>
                    <prop-value>java.lang.Integer</prop-value>
                </property>
            </column-properties>

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    OK, ca a l'air de marcher...

    Merci encore pour tes réponses!

    Baptiste

  4. #4
    Membre éprouvé
    Avatar de request
    Inscrit en
    Novembre 2002
    Messages
    328
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 328
    Points : 1 248
    Points
    1 248
    Par défaut
    Citation Envoyé par Bobby McGee
    OK, ca a l'air de marcher...

    Merci encore pour tes réponses!

    Baptiste
    Je suis ton consultant attitré

    C'est une grosse application qui vous devez faire?

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

Discussions similaires

  1. modéliser une table mapping ayant des clés étrangères sur des vues
    Par touftouf57 dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 19/06/2010, 03h04
  2. [hibernate 3] [mapping] Description des clés étrangères
    Par CharlSka dans le forum Hibernate
    Réponses: 2
    Dernier message: 01/02/2007, 10h01
  3. Contraintes de clés étrangères non respectées
    Par parfait dans le forum Requêtes
    Réponses: 7
    Dernier message: 28/07/2004, 13h48
  4. clé primaire composée de 2 clés étrangères
    Par Tigresse dans le forum Installation
    Réponses: 5
    Dernier message: 28/07/2003, 15h38
  5. [Script]prob de clés étrangères
    Par Seb7 dans le forum Langage SQL
    Réponses: 13
    Dernier message: 08/07/2003, 18h37

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