Bonjour,
J'esseye de transformé une requete SQL vers du HQL, cette requete est sous la forme suivante :
Le code HQL que j'ai esseyé de faire est le suivant :
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 SELECT (certain elements de t2) FROM debitant t2 INNER JOIN debit t3 ON t2.id_debit = t3.id INNER JOIN l_debit_saci t7 ON t3.id = t7.id_debit AND t7.principal = 1 INNER JOIN rushServices t8 ON t7.code_acs = t8.acs INNER JOIN bulletin_correction t10 ON t2.id = t10.id_debitant LEFT OUTER JOIN l_debitant_complement t9 ON t2.adr_info = t9.id INNER JOIN commune t6 ON t3.adr_cc = t6.id WHERE t2.id = @debitant_id AND t10.annee = @PECAnnee ORDER BY t3.adr_cp , t2.id
Ce code me retourne une erreur : Invalid path: 'BulletinCorrectionMod.debitant'
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 buffer = new StringBuilder(); buffer.append("SELECT D "); buffer.append("FROM " + getEntityClassName() + " D "); buffer.append("INNER JOIN FETCH D.debit DE "); buffer.append("INNER JOIN FETCH DE.sacis DS "); buffer.append("INNER JOIN FETCH DS.service RS "); buffer.append("INNER JOIN BulletinCorrectionMod.debitant BC "); buffer.append("LEFT OUTER JOIN D.adresseInfo DEC "); buffer.append("INNER JOIN FETCH DE.adresseCommune CO "); buffer.append("WHERE DS.principal = 1 "); buffer.append("AND D.id = :debitantId "); buffer.append("AND DC.annee = :annee "); buffer.append("ORDER BY DE.adresseCodePostal, D.id"); hqlQuery = session.createQuery(buffer.toString()); hqlQuery.setInteger("debitantId", debitantId); hqlQuery.setInteger("annee", year);
Voici l'ensemble des DAO avec leurs relations :
DebitantMod :
DebitMod :
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 @Entity @Table(name = "debitant") public class DebitantMod implements Serializable { @Id @Column(name = "id", nullable = false) @GeneratedValue(strategy = GenerationType.AUTO, generator = "sequence_name") @SequenceGenerator(name = "sequence_name", sequenceName = "debitant_id_seq") private Integer id = null; @Column(name = "adr_info", nullable = true) private Integer adresseInfo = null; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "id_debit", nullable = false) private DebitMod debit = null; .... }
DebitSaciMod :
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 @Entity @Table(name = "debit") public class DebitMod implements Serializable { @Id @Column(name = "id", nullable = false) @GeneratedValue(strategy = GenerationType.AUTO, generator = "sequence_name") @SequenceGenerator(name = "sequence_name", sequenceName = "debit_id_seq") private Integer id = null; @OneToMany(mappedBy = "debit", fetch = FetchType.LAZY) private Set<DebitantMod> debitants = null; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "adr_cc", nullable = true, columnDefinition = "bpchar") private CommuneMod adresseCommune = null; ... }
RushServiceMod :
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 @Table(name = "l_debit_saci") public class DebitSaciMod implements Serializable { @Id @Column(name = "id", nullable = false) @GeneratedValue(strategy = GenerationType.AUTO, generator = "sequence_name") @SequenceGenerator(name = "sequence_name", sequenceName = "l_debit_saci_id_seq") private Integer id = null; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "id_debit", nullable = false) private DebitMod debit = null; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "code_acs", nullable = false) private RushServiceMod service = null; ... }
BulletinCorrectionMod :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 @Entity @Table(name = "rushservices") public class RushServiceMod implements Serializable { @Id @Column(name = "acs", nullable = false) private String acs = null; ... }
DebitantComplementMod :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 @Entity @Table(name = "bulletin_correction") public class BulletinCorrectionMod implements Serializable{ @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "id_debitant", nullable = false) private DebitantMod debitant = null; @Column(name = "annee", nullable = false) private Integer annee = null; ... }
CommuneMod :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 @Entity @Table(name = "l_debitant_complement") public class DebitantComplementMod implements Serializable{ @Id @Column(name = "id", nullable = false) @GeneratedValue(strategy = GenerationType.AUTO, generator = "sequence_name") @SequenceGenerator(name = "sequence_name", sequenceName = "l_debitant_complement_id_seq") private Integer id = null; ... }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 @Entity @Table(name = "commune") public class CommuneMod implements Serializable { @Id @Column(name = "id", nullable = false, columnDefinition = "bpchar") private String id = null; ... }
Partager