更好地解释问题
Colaborateur类的代码
private Integer idColaborateur;
private Rolecol rolecol;
private String matriculeColaborateur;
private String nomColaborateur;
private String prenomColaborateur;
private String mailColaborateur;
private String pwdColaboratuer;
private String loginColaborateur;
private String adresseColaborateur;
private Boolean flgSuspendu;
// getter and setter
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "colaborateur")
public Set<NoteObjectifs> getNoteObjectifses() {
return this.noteObjectifses;
}
类的代码NoteObjectifs
private Integer idNoteObjectif;
private Colaborateur colaborateur;
private CompagneDevaluation compagneDevaluation;
private Appreciation appreciation;
private Integer moyenneFinale;
private String objectif;
private Integer poid;
// getter and setter
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "idColaborateur")
public Colaborateur getColaborateur() {
return this.colaborateur;
}
NoteObjectifsDAO
public List<NoteObjectifs> findByMatriculecol(String matriculecolaborateur){
String queryString = "String queryString = "select c from NoteObjectifs n inner join n.colaborateur c where c.matriculeColaborateur = ? ";
return getHibernateTemplate().find(queryString);
}
异常
Expected positional parameter count: 1, actual parameters: [] [select c from NoteObjectifs n inner join n.colaborateur c where c.matriculeColaborateur = ? ]
我遇到HQL查询问题 我想通过他们的matricule查看员工(colaborateur)的目标(noteobjectif)
答案 0 :(得分:1)
此处的例外与连接无关...您没有声明参数,您必须这样做。修复是这样的:
return getHibernateTemplate().find(queryString, matriculecolaborateur);
如果我可以建议另外一件事:为这种“静态”查询创建一个命名查询。 NamedQueries在启动时编译,而不是在运行时编译,因此更快。你可以在一个地方声明它们(在类顶部的注释中,或在xml中)。
祝你好运。