J'ai utilisé un webservice qui fait appel à une base de donnée, ma raque HQL est :
Ma classe mappée est:
Code Java : 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 StringBuilder hql = new StringBuilder(); hql.append("select "); hql.append(" entity.numDossier "); hql.append(" entity.nomAgent "); hql.append(" entity.nomClient "); hql.append(" entity.prenomClient "); hql.append(" entity.dateDemande "); hql.append(" entity.dateFactue "); hql.append(" entity.dateDepart "); hql.append(" entity.montantRembouse "); hql.append(" entity.modeRembousement "); hql.append(" entity.motifRemboursement "); hql.append(" entity.marquers "); hql.append("from "); hql.append(RemboursementTroPercu.class.getCanonicalName()); hql.append(" as entity "); hql.append(" where 1=1 "); hql.append(" and entity.ridMotifRemboursement= :ridMotifRemboursement "); hql.append(" left join fetch entity.motifRemboursement "); hql.append(" and enty.ridMarquers= :ridMarquers"); hql.append(" left join fetch entity.marquers= :ridMarquers ");
Classe mere
Code Java : 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
29
30
31
32
33
34
35
36
37
38 @Entity @Table(name="obj_remb_tropercu") //@Inheritance(strategy=InheritanceType.) @Cache(usage=CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) public class RemboursementTroPercu extends RemboursementElement { @Column(name="RID_MARQUE" , nullable=false) private Integer ridMarquers; @OneToOne(cascade = CascadeType.ALL) @PrimaryKeyJoinColumn(name ="ID", referencedColumnName ="RID_MARQUERS") RefMarquers marquers; @Column(name="RID_MOTIF_REMBOURSEMENT" , nullable=false) private Integer ridMotifRemboursement; @OneToOne(cascade = CascadeType.ALL) @PrimaryKeyJoinColumn(name ="ID", referencedColumnName = "RID_MOTIF_REMBOURSEMENT") RefMotifRemboursement motifRemboursement; @Column(name="NUM_TICKET_MAIL" , nullable=false) private Integer numeroTicketEptica; // service demandeur @Column(name="RID_NUMERO_TICKET_EPTICA" , nullable=false) private Integer ridNumeroTicket; // service demandeur @OneToOne(cascade = CascadeType.ALL) @JoinColumn(name="RID_NUMERO_TICKET_EPTICA" , insertable=false , updatable=false ,nullable=false) @PrimaryKeyJoinColumn(name ="ID", referencedColumnName = "RID_NUMERO_TICKET_EPTICA") RefTicket serviceDemandeur; @Column(name="RESPONSABLE_ERREUR", nullable=true) private String reponsableErreur; @Column(name="SERVICE" , nullable=false) private String service;
Code Java : 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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 @Entity @Cache(usage=CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) @Inheritance(strategy=InheritanceType.TABLE_PER_CLASS) @IdClass(value=RemboursementElementPK.class) public abstract class RemboursementElement { private static final long serialVersionUID = 410111062297729353L; @Id @Column(name = "ID", nullable = false) @GenericGenerator(name = "pk_remboursement", strategy = "native") @GeneratedValue(generator = "pk_remboursement") private Long id; @Column(name="NUMERO_DOSSIER_REM",nullable=false) private String numDossier; @Column(name="NOM_AGENT", nullable=false) private String nomAgent; @Column(name="NOM_CLIENT", nullable=false) private String nomClient; @Column(name="PRENOM_CLIENT", nullable=false) private String prenomClient; @Column(name="DATE_DEMANDE", nullable=false) private Date dateDemande; @Column(name="DATE_FACTURE", nullable=false) private Date dateFactue; @Column(name="DATE_DEPART", nullable=false) private Date dateDepart; @Column(name="MONTANT_REMBOURSE",nullable=false) private Double montantRembouse; @Column(name="RID_MODE_REMBOURSEMENT" , nullable=false) private Integer ridModeRemboursement; @OneToOne(cascade = CascadeType.ALL) @PrimaryKeyJoinColumn(name ="ID", referencedColumnName = "RID_MODE_REMBOURSEMENT") EnumModeRemboursement modeRembousement; @Column(name="AUTRE_MOTIF_REMBOURSEMENT", nullable=true) private String autreMotifRemboursement; @Column(name="VISA_SUPERVISEUR",nullable=true) private String visaSuperviseur; @Column(name="VISA_RESPONSABLE_FINANCIERS",nullable=true) private String visaResponsableFinanciers;
Caused by: org.hibernate.hql.ast.QuerySyntaxException: unexpected token: entity near line 1, column 37 [select entity.numDossier entity.nomAgent entity.nomClient entity.prenomClient entity.dateDemande entity.dateFactue entity.dateDepart entity.montantRembouse entity.modeRembousement entity.motifRemboursement entity.marquers from com.karavel.finance.domain.finance.remboursement.entities.RemboursementTroPercu as entity where 1=1 and entity.ridMotifRemboursement= :ridMotifRemboursement left join fetch entity.motifRemboursement and enty.ridMarquers= :ridMarquers left join fetch entity.marquers= :ridMarquers ]
Partager