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 :

Mapping domaine de valeur


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2009
    Messages : 169
    Points : 100
    Points
    100
    Par défaut Mapping domaine de valeur
    Bonjour,

    j'ai la class suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    @Entity
    @Table(name="A")
    public class A implements Serializable {
    	private static final long serialVersionUID = 1L;
     
    	@Id
    	@SequenceGenerator(name="A_ID_GENERATOR", sequenceName="A_IDSEQ")
    	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="A_ID_GENERATOR")
    	@Column(name="id")
    	private Integer Id;
     
    	@Column(name="etat_C30")
    	private String etatC30;
    	...
    Mon champ etatC30, fait en réalité référence à une autre table de domaine de valeur.
    La class est la suivante :

    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
    @Entity
    @Table(name="DomaineValeur")
    public class DomaineValeur implements Serializable {
    	//default serial version id, required for serializable classes.
    	private static final long serialVersionUID = 1L;
     
    	@Column(name="dom")
    	private Integer dom;
     
    	@Column(name="code")
    	private String code;
     
    	@Column(name="lib")
    	private String lib;
    	...
    Dans le cas de ma class A, la valeur de dom sera 30 (puisque etatC30), et le code la valeur stocké au niveau du champ dans ma class A.
    J'ai retourné le problème dans tous les sens je ne vois pas comment mapper la class DomaineValeur avec ma class A.

    D'avance merci de vos lumières.
    HadanMarv

  2. #2
    Membre confirmé
    Avatar de Khaled.Noordin
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 354
    Points : 497
    Points
    497
    Billets dans le blog
    1
    Par défaut
    Bonjour
    essaye ca pour voir dans ta classe A
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @ManyToOne(targetEntity=DomaineValeur.Class)
     @JoinColumn(name="etat_C30",referencedColumnName="dom")
     private Integer etatC30;

    Cordialement

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 938
    Points : 4 359
    Points
    4 359
    Par défaut
    Citation Envoyé par Khaled.Noordin Voir le message
    Bonjour
    essaye ca pour voir dans ta classe A
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @ManyToOne(targetEntity=DomaineValeur.Class)
     @JoinColumn(name="etat_C30",referencedColumnName="dom")
     private Integer etatC30;

    Cordialement
    "dom" doit être @Id pour pouvoir être la cible d'un @ManyToOne.

  4. #4
    Membre confirmé
    Avatar de Khaled.Noordin
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 354
    Points : 497
    Points
    497
    Billets dans le blog
    1
    Par défaut
    Il me semble que si dom est unique cela fonctionne sinon
    je propose suite à ta remarque judicieuse
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @ManyToOne
     @JoinColumn(name="dv_id")
     private DomaineValeur dv;

    à la charge ensuite du developpeur de passé la requete(jpql ou criteria) qui va bien avec un parametre de 30 pour le membre a.dv.dom

    Cordialement

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 68
    Points : 116
    Points
    116
    Par défaut
    Citation Envoyé par Khaled.Noordin Voir le message
    Il me semble que si dom est unique cela fonctionne sinon
    je propose suite à ta remarque judicieuse
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @ManyToOne
     @JoinColumn(name="dv_id")
     private DomaineValeur dv;

    à la charge ensuite du developpeur de passé la requete(jpql ou criteria) qui va bien avec un parametre de 30 pour le membre a.dv.dom

    Cordialement
    Bonjour
    on ne comprends pas bien... Pour cette proposition a quel niveau fais-tu le lien avec l'autre table?

  6. #6
    Membre confirmé
    Avatar de Khaled.Noordin
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 354
    Points : 497
    Points
    497
    Billets dans le blog
    1
    Par défaut
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Integer dom = 30;
    // voici la query je passe sous silence les appel a l'EntityManager
    "select a from A a where a.dv.dom = :dom"
    // cela renvoi les A qui ont un dom de 30

    il faut aussi rajouter des @NotNull sur dom dans DomaineValeur et sur dv dans A

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

Discussions similaires

  1. Trier une Map sur les valeurs de façon décroissante
    Par ddams dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 27/12/2011, 18h33
  2. Réponses: 2
    Dernier message: 11/08/2010, 20h30
  3. [Débutant] Limiter domaine de valeurs fonction 3D
    Par rv29634 dans le forum MATLAB
    Réponses: 2
    Dernier message: 28/09/2007, 16h42
  4. Mettre null dans un champ avec un domaine de valeur
    Par Kantizbak dans le forum SQL
    Réponses: 7
    Dernier message: 16/02/2005, 09h24
  5. Trier un std::map selon les valeurs plutot que les clés
    Par dj.motte dans le forum SL & STL
    Réponses: 2
    Dernier message: 13/11/2004, 21h54

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