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 :

Insert join null


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 94
    Par défaut Insert join null
    Bonjour,

    je souhaiterai faire un insert mais j'obtiens toujours l'erreur SQLException: ORA-01400: cannot insert NULL into ("TABLE1"."REFTABLE21") avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    @Entity
    public class Table1
    {
    @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.DETACH)
    @JoinColumn(name = "TABLE2", columnDefinition = "NUMBER(7,0) default '0'")
    public Table2Entity getReftable2() {
            return reftable2;
        }
    }
    La colonne TABLE1.REFTABLE2 est une référence à la primary key de Table2 mais n'est pas définie comme foreign key dans la DB.

    En base de donnée, la colonne REFTABLE1 est définie comme étant NUMBER(7,0) default '0' No nullable. Dans mon entity, cette colonne est définie comme un JoinColumn.
    Mon problème est que lors de l'insert, je ne connais pas encore la valeur de cette colonne. Je souhaiterai que lors de l'insert, cette colonne prenne la valeur "0" mais je n'y arrive pas.

    J'ai déjà essayé en passant un setRefTable1(null) mais sans succès...

    Merci pour votre aide

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    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 482
    Par défaut
    ben si tu veux y mettre null... Faut la définir nullable dans ton modèle oracle

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 94
    Par défaut
    Oui sauf que je n'ai pas les droits pour faire ce genre de modification...
    N'y a-t-il pas moyen d'initialiser a 0 une valeur d'une colonne join lorsque celle-ci n'est pas renseignée?

    Merci

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    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 482
    Par défaut
    c'est un join, ton "0" doit correspondre à un entité qui a l'id 0 si tu veux que ça marche. Dans ce cas, fait le, met une entité existante comme valeur qui te serve de "defaut".

    Si tu n'a pas la droit de modifier le modèle, alors il faut te demander pourquoi diable ton code a besoin d'ignorer le modèle. Si l'auteur de la DB a rendu ça obligatoire, il y a une bonne raison, donc remplis la valeur.

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 94
    Par défaut
    Je comprends le modèle qui a été choisi mais fonctionnelement, à la création de mon entité, la valeur du join n'est pas connu et est renseigné plus tard dans le processus.

    J'ai donc besoin d'initialiser cette valeur à 0 à la création mais aucune entité avec l'ID 0 n'existe (en DB le join n'a pas été défini).
    Je me demandais donc s'il n'y avait pas moyen de forcer hibernate à prendre une valeur par défaut quand le join n'est pas établi...

    Merci

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    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 482
    Par défaut
    tu peux expliquer comment est ton modèle de DB, ce n'est plus clair là maintenant.

Discussions similaires

  1. [AC-2007] Inner Join & null
    Par J_help dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 10/07/2009, 17h05
  2. Récupération ID après INSERT retourne NULL
    Par Jean-Marc68 dans le forum ASP.NET
    Réponses: 7
    Dernier message: 06/12/2007, 19h55
  3. [SQL] Insertion valeur NULL de php vers SQL
    Par tkwleboss dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 23/11/2007, 13h21
  4. insertion valeur null en tant qu'administrateur
    Par new_wave dans le forum SQL
    Réponses: 3
    Dernier message: 06/11/2007, 11h28
  5. [SQL SERVER] Inner join null ?
    Par diaboloche dans le forum Langage SQL
    Réponses: 1
    Dernier message: 06/03/2007, 15h59

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