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 :

[Hibernate] Requête avec un Embedded Id


Sujet :

Hibernate Java

  1. #1
    Membre habitué Avatar de zhouyu
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 90
    Points : 143
    Points
    143
    Par défaut [Hibernate] Requête avec un Embedded Id
    Bonjour.

    J'ai un problème avec Hibernate.

    J'ai une table sans colonne servant d'ID. J'ai donc utilisé un embedded id car il faut absoluement un ID avec hibernate.
    J'ai choisi un couple de colonnes qui permet d'identifier de manière unique une ligne de la table.
    Cependant quand je requête sur un seul de cet ID, la requête ne me renvoie pas toutes les valeurs...

    Table :
    • Champs
      Nom : table_f_avancement_action_champs.PNG
Affichages : 153
Taille : 8,5 Ko
    • Valeurs
      Nom : table_f_avancement_action_valeurs.PNG
Affichages : 149
Taille : 7,3 Ko


    Mon entité :
    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
    18
    19
    20
    21
    @Entity
    @Component
    @Data
    @Table(name = "F_AVANCEMENT_ACTION")
    public class AvancementActionDtw {
     
      // --------------------------------------------------------
      // FIELDS
      // --------------------------------------------------------  
     
      @Id
      private AvancementActionDtwPk id;
     
      @Temporal(TemporalType.TIMESTAMP)
      @Column(name = "DATE_AVANCEMENT", nullable = false)
      private Date dateAvancement;
     
      @Column(name = "COUT", nullable = true)
      private Integer coutAction;
     
    }
    Mon embbeded Id :
    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
    18
    @Data
    @Embeddable
    @EqualsAndHashCode(of = { "codeAction", "codeAvancement" })
    public class AvancementActionDtwPk  implements Serializable {
     
      private static final long serialVersionUID = 1L;
     
      // --------------------------------------------------------
      // Fields
      // --------------------------------------------------------  
     
      @Column(name = "CODE_ACTION", nullable = false)
      private String codeAction;
     
      @Column(name = "CODE_AVANCEMENT", nullable = false)
      private String codeAvancement;
     
    }
    Mon DAO :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    @Repository
    @Component
    public interface AvancementActionDtwDao extends JpaRepository<AvancementActionDtw, AvancementActionDtwPk> {
     
      /**
       * Recherche les {@link AvancementActionDtw} via leur code action et leur code avancement
       * 
       * @param codeAction le code de l'action à trouver
       * @param codeAvancement le code avancement à utiliser pour filtrer
       * 
       * @return les {@link AvancementActionDtw}
       */
      @Query("from AvancementActionDtw where id.codeAction = :codeAction and id.codeAvancement = :codeAvancement")
      List<AvancementActionDtw> findAvancementActionDtw(@Param("codeAction") String codeAction,
          @Param("codeAvancement") String codeAvancement);
     
      /**
       * Recherche les {@link AvancementActionDtw} via leur code action
       * 
       * @param codeAction le code de l'action à trouver
       * 
       * @return les {@link AvancementActionDtw}
       */
      @Query("from AvancementActionDtw where id.codeAction = :codeAction")
      List<AvancementActionDtw> findAvancementActionDtw(@Param("codeAction") String codeAction);
     
    }
    Si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    findAvancementActionDtw("A0000002")
    je ne récupère que la 2ème entrée <"A0000002"; "Engagée">
    Si je demande explicitement la première entrée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    findAvancementActionDtw("A0000002", "Terminée")
    je ne récupère rien...

    Quelqu'un peut-il m'indiquer où est mon erreur ?

    Cordialement.

  2. #2
    Membre habitué Avatar de zhouyu
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 90
    Points : 143
    Points
    143
    Par défaut Erreur stupide...
    Bonjour,

    en faite mon SQL Developper n'était pas sur la même bdd que mon application...

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/12/2011, 11h31
  2. Réponses: 6
    Dernier message: 23/11/2011, 16h36
  3. [Hibernate] Faire une requête avec relation NN
    Par n@n¤u dans le forum Hibernate
    Réponses: 20
    Dernier message: 25/07/2006, 10h39
  4. Réponses: 1
    Dernier message: 23/06/2006, 19h10
  5. [Hibernate] Requête avec un LIKE %% case insensitive
    Par n@n¤u dans le forum Hibernate
    Réponses: 4
    Dernier message: 21/06/2006, 17h27

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