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 :

[Mapping] Integer to Boolean + Inversion


Sujet :

Hibernate Java

  1. #1
    BiM
    BiM est déconnecté
    Expert confirmé
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Par défaut [Mapping] Integer to Boolean + Inversion
    Bonjour,

    J'ai une table qui contient un champ dans Oracle 10g comme ceci :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    ACTIF NUMBER(1) CHECK(ACTIF IN (0,1)) NOT NULL
    (Entier sur un chiffre dont la valeur est soit 0 soit 1)

    Ce champ représente en réalité un booléen (mais ce type n'existe pas sur Oracle). Dans ma classe j'ai donc :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    private Boolean actif;
     
    public Boolean getActif() {
    	return actif;
    }
     
    public void setActif(Boolean actif) {
    	this.actif = actif;
    }

    Et dans mon mapping ceci :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    <property name="actif" column="actif"/>
    (Le cast se fait correctement)

    Cependant, j'ai un soucis. En réalité, dans mon champ en base 0 représente VRAI et 1 représente FAUX. Je voudrais donc inverser la valeur du champ ACTIF.

    Comment puis-je faire ?

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 338
    Par défaut
    salut, personnellement je préfère les type primitif pour me simplifier la vie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    private boolean actif;
     
    public boolean getActif() {
    	return actif;
    }
     
    public void setActif(boolean actif) {
    	this.actif = !actif; //inverse false = 0 à 1 true
    }
    A++

  3. #3
    BiM
    BiM est déconnecté
    Expert confirmé
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Par défaut
    Bonjour,

    En fait je me suis trompée dans l'énoncé du problème.

    Ce mapping :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    <property name="actif" column="actif"/>

    Fonctionne avec 0 mais avec 1, il m'envoie méchamment bouler...

    Il faut apparemment plutôt utiliser ce mapping :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    <property name="actif" column="actif" type="true_false"/>

    En réponse à hibour, faire un setActif comme tu me le proposes ne résout pas le problème. Surtout si je fais setActif(...) quelque part dans l'application. Ca devient complètement illogique. Cependant j'ai trouvé la solution au niveau de l'inversement, je l'ai appelé inactif .

    Et donc voilà ça fonctionne.

    PS : Dans la doc, type primitif ou pas, la seule différence est que le type non primitif peut être à null.

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

Discussions similaires

  1. Comment trier une map de type Map<String, Map<Integer, Integer>>
    Par khalidlyon dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 12/01/2010, 14h31
  2. [JSTL] Attempt to coerce a value of type "java.lang.Integer" to Boolean
    Par jamalmoundir dans le forum Taglibs
    Réponses: 3
    Dernier message: 26/06/2007, 10h40
  3. Inversion de valeur de boolean
    Par cubitus91 dans le forum Delphi
    Réponses: 2
    Dernier message: 05/12/2006, 00h07
  4. Comment fait-on pour inverser un boolean ?
    Par [DreaMs] dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 08/11/2006, 12h25
  5. Inverse d'un 'Boolean'
    Par Sunchaser dans le forum C++Builder
    Réponses: 7
    Dernier message: 29/07/2006, 13h14

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