Bonjour,
N'ayant pas trouvé la solution à mon problème, je me tourne vers vous.
Donc voici pour commencer les 2 POJO :
AsCustomer
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
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
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
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;
Voici ce que j'ai écrit mais qui ne fonctionne pas :
Hibernate lance une exception comme quoi il ne peut pas exécuter la requête ...
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 + "%") ) ) );
Est ce que quelqu'un peut me donner une piste ?
Si vous avez besoin de plus d'information je reste dispo.
Merci d'avance.
Partager