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 :

Select avec les criteria sur deux tables reliées en ManyToOne


Sujet :

Hibernate Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 13
    Points : 11
    Points
    11
    Par défaut Select avec les criteria sur deux tables reliées en ManyToOne
    Bonjour,

    N'ayant pas trouvé la solution à mon problème, je me tourne vers vous.

    Donc voici pour commencer les 2 POJO :

    AsCustomer
    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
     
    @Entity
    @Table(name = "as_customer")
    public class AsCustomer implements java.io.Serializable {
     
    	@Id
    	@GeneratedValue
    	@Column(name = "id", unique = true, nullable = false)
    	private int id;
     
    	@Column(name = "name", nullable = false)
    	private String name;
     
    	@ManyToOne(fetch = FetchType.EAGER)
    	@Fetch(FetchMode.JOIN)
    	@LazyToOne(LazyToOneOption.FALSE)
            @JoinColumn(name = "city")
    	private GeoCity city;
     
    // ... getter / setter
    GeoCity
    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 = "geo_city")
    public class GeoCity implements java.io.Serializable {
     
    	@Id
    	@GeneratedValue
    	@Column(name = "id", unique = true, nullable = false)
    	private int id;
     
    	@Column(name = "zip", length = 15, columnDefinition = "char")
    	private String zip;
     
    	@Column(name = "label", length = 120, columnDefinition = "Lvarchar")
    	private String label;
    J'ai besoin de créer une requête qui récupère la liste des AsCustomer en filtrant sur le nom (name) et sur le label du POJO GeoCity

    Voici ce que j'ai écrit mais qui ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Criteria criteria = session.createCriteria(AsCustomer.class);
    criteria.add(
    	Restrictions.or(
    		Restrictions.or(
    			Restrictions.ilike("name", "%" + query + "%"), 
    			Restrictions.ilike("city.label", query + "%")
    				) 
    		)
    );
    Hibernate lance une exception comme quoi il ne peut pas exécuter la requête ...

    Est ce que quelqu'un peut me donner une piste ?

    Si vous avez besoin de plus d'information je reste dispo.

    Merci d'avance.

  2. #2
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    Essaye de passer par un alias :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    List listAsCutomers = session.createCriteria(AsCustomer.class)
            .createAlias("city", "c")
    	.add(
                    Restrictions.or(
    	                Restrictions.ilike("name", "%"+query+"%"),
    		        Restrictions.ilike("c.label", query+"%")
                    )
            )
    	.list();

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Hello,

    Merci j'ai essayé et cela fonctionne.

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

Discussions similaires

  1. Update sur deux table relié par une clé étrangère.
    Par labib23dz dans le forum Développement
    Réponses: 5
    Dernier message: 18/04/2019, 11h40
  2. Select avec 2 critères sur des tables reliées
    Par beyo dans le forum Requêtes
    Réponses: 4
    Dernier message: 07/12/2010, 15h03
  3. [AC-2003] Requeête création avec les champs de deux tables
    Par yupyupxav dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 15/12/2009, 22h46
  4. Réponses: 10
    Dernier message: 11/08/2009, 14h43
  5. Réponses: 5
    Dernier message: 10/06/2009, 11h01

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