Précédent   Forum des professionnels en informatique > Java > Général Java > Persistance > JPA
JPA Forum d'entraide sur l'API de persistance JPA (Java Persistence API)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/12/2011, 12h15   #1
Membre habitué
 
Avatar de geforce
 
Femme
Développeur informatique
Inscription : janvier 2010
Messages : 468
Détails du profil
Informations personnelles :
Sexe : Femme

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2010
Messages : 468
Points : 149
Points : 149
Envoyer un message via Skype™ à geforce
Par défaut @OrderBy et @OrderColumn d'un champs simple de mon Entity

Bonjour,

Je chercher à ordonner le contenu de ma table "Pays" par ordre alphabétique.

J’ai testé avec "@OrderBy" sur mon champs mais sa marche pas quand j'ai fait l'insertion de mes valeur

Voilà mon Entity

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
@Entity
@Table(name = "t_pays")
public class Pays implements Serializable {
    private static final long serialVersionUID = 1L;
 
    private String id;
    private String libelle;
 
   /*********Setteur and Getter**********/    
    @Id
    @NotNull
    @Column(name = "code_pays")    
    public String getId() { return id; }
    public void setId(String id) { this.id = id; }
 
    @NotNull
    @OrderBy(value="libelle")  /*sa marche pas !! ici*/
    @Column(name = "libelle")
    public String getLibelle() { return libelle; }
    public void setLibelle(String libelle) { this.libelle = libelle; }
    /* ******************************** */
}
Y a-t-il une solution ou ces moi qui a pas bien fait une chose
geforce est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 14h30   #2
Membre éprouvé
 
Homme Philippe BASTIANI
Architecte technique
Inscription : juin 2005
Messages : 257
Détails du profil
Informations personnelles :
Nom : Homme Philippe BASTIANI
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Architecte technique
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : juin 2005
Messages : 257
Points : 487
Points : 487
Bonjour,

Citation:
Envoyé par geforce Voir le message
Y a-t-il une solution ou ces moi qui a pas bien fait une chose
@OrderBy & @OrderColumn s'appliquent sur des collections...

De plus: tu noteras aussi que les annotations hibernate et jpa n'ont pas le même comportement (@org.hibernate.annotations.OrderBy & @javax.persistence.OrderBy)

Tu pourrais avoir dans une autre entity:
Code :
1
2
3
4
5
6
@Entity 
public class Continent implements Serializable {
   @OneToMany
   @OrderBy("libelle ASC") 
   public List<Pays> paysList;
}
@OrdeBy peut aussi être associé à @ElementCollection par exemple:

Code :
1
2
3
4
@ElementCollection @Temporal(DATE)
@Column(name="DATE")
@OrderBy("DESC")
List<Date> dates;
a+
Philippe
Philippe Bastiani est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/12/2011, 22h23   #3
Membre habitué
 
Avatar de geforce
 
Femme
Développeur informatique
Inscription : janvier 2010
Messages : 468
Détails du profil
Informations personnelles :
Sexe : Femme

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2010
Messages : 468
Points : 149
Points : 149
Envoyer un message via Skype™ à geforce
Merci pour l'explication j'ai bien apprécié

Mais d'après ce que tu dis il y a pas de moyenne d'ordonnés l'insertion ou le Selecte directement dans une Entiter (comme celle du premier poste) je suis obligés d'utiliser une requête simple avec un orderBy ? (y a pas comme un manque ici) ou ces moi qui dit n'importe quoi mais je n’arrive pas à comprendre pourquoi ces pas possible de le faire directe pour une Table d'une Entity simple sans liste.

Merci de votre réponse
geforce est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 15h22   #4
Membre éprouvé
 
Homme Philippe BASTIANI
Architecte technique
Inscription : juin 2005
Messages : 257
Détails du profil
Informations personnelles :
Nom : Homme Philippe BASTIANI
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Architecte technique
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : juin 2005
Messages : 257
Points : 487
Points : 487
Tu ne peux pas faire plus en JPA que ce que permet SQL...
Pourquoi voudrais-tu qu'il y ait un manque Tu n'as qu'un simple attribut dans une entité... pas une collection d'entités !

Mais je te l'accorde, tu n'as pas d'index en JPA contrairement à JDO et Hibernate pourquoi ? Peut-être parce que leur création est le rôle du DBA et non du développeur...

Quant aux collections: tu noteras que la sémantique Java pour les List n'est pas celle que tu retrouves dans JDBC: concrètement @OrderBy ne te garantie pas l'ordonnancement de tes tuples en base... par contre il va te garantir l'ordre de tes entités à la lecture de ta base. Si tu veux un respect strict, il te faudra utiliser l'annotation @OrderColumn de JPA2 (@OrderColumn ajoute colonne technique à ta BDD). Mais encore un fois: cette colonne additionnelle ne sera créée que dans un table/colonne de jointure pour lier 2 entités de natures différentes dans une collection!

des tutos pas mal du tout en français sur JPA...

a+
Philippe
Philippe Bastiani est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h09.


 
 
 
 
Partenaires

Hébergement Web