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 :

Type boolean ?


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 292
    Par défaut Type boolean ?
    Bonjour,
    j'utilise une base de données Oracle, j'ai un champ Oui ou Non,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    actif VARCHAR2(1);
    actif in ('O','N')
    comment je peux mapper ce champs en booléen ?
    existe-il le type boolean en Oracle ?
    Merci

  2. #2
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Oracle ne dispose pas de type booléen.
    En revanche JDBC propose une conversion (source)
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 292
    Par défaut
    merci pour ta réponse rapide, mais c'est pas ça que je recherche
    j'ai trouvé mais je ne sais pas comment sa fonctionne avec ma table ??
    Merci

  4. #4
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Si tu mappes cette colonne vers un attribut de type primitif booléen, la conversion (Java -> Oracle et Oracle -> Java) se fera automatiquement comme explicité dans le lien que je t'ai donné.

    Tu cherches à mapper 'O' et 'N' vers true et false ?
    Si c'est le cas le plus simple c'est d'ajouter des getter/setter qui manipule des booléens.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 292
    Par défaut
    Tu cherches à mapper 'O' et 'N' vers true et false ?
    oui mon champ est soit oui soit non !!

    Si c'est le cas le plus simple c'est d'ajouter des getter/setter qui manipule des booléens.
    Aujourd'hui 11h32
    genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public Boolean  getActif() {
    		if (actif == null) return null;
    	    return actif == "O" ? Boolean.TRUE : Boolean.FALSE;
    	}
     
    	public void setActif(boolean actif) {
    		 if ("null".equals(actif)) {
    		      this.actif = null;
    		    } else {
    		      this.actif = actif == true ? "O" : "N";
    		    }
    	}

  6. #6
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Citation Envoyé par rimas2009 Voir le message
    oui mon champ est soit oui soit non !!
    Je dirais plutôt soit 'O' soit 'N' Car si c'est juste pour faire du booléen peut importe la valeur en base. Autant utiliser le mécanisme de base.


    Version corrigée
    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
     
    public static final String ACTIF_VALUE_TRUE = "O";
    public static final String ACTIF_VALUE_FALSE = "N";
    public Boolean  isActif() {
      if (actif == null) return null;
      if (ACTIF_VALUE_TRUE.equals(actif)) return Boolean.TRUE;
      if (ACTIF_VALUE_FALSE.equals(actif)) return Boolean.FALSE;
      // Unexpected value (use default)
      actif = null;
      return null;
    }
     
    public void setActif(Boolean isActif) {
      if (isActif == null) actif = null;
      else if (isActif)  actif = ACTIF_VALUE_TRUE;
      else actif = ACTIF_VALUE_FALSE;
    }
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

Discussions similaires

  1. Type boolean et Auto Incrémente
    Par mouloudéen dans le forum SQL
    Réponses: 2
    Dernier message: 03/04/2007, 21h42
  2. Réponses: 1
    Dernier message: 16/03/2007, 11h46
  3. [oracle 8i] type boolean
    Par yasinfo dans le forum Oracle
    Réponses: 6
    Dernier message: 18/06/2006, 16h48
  4. Type boolean MIN_VALUE || MAX_VALUE
    Par bxflash dans le forum Langage
    Réponses: 5
    Dernier message: 23/08/2005, 13h52
  5. [débutant] type boolean!!!
    Par just1980 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 10/08/2005, 10h47

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