J'ai utilisé un webservice qui fait appel à une base de donnée, ma raque HQL 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 ");
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
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;
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
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 ]