使用联接HibernateTemplate()进行查询
代码T类类型能力的代码使用联接HibernateTemplate()进行查询,hibernate,Hibernate,代码T类类型能力的代码 @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "typeCompetence") public Set<Criteres> getCritereses() { return this.critereses; } 类CriteresDAO的代码 public List<Criteres> FindidAspetComp
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "typeCompetence")
public Set<Criteres> getCritereses() {
return this.critereses;
}
类CriteresDAO的代码
public List<Criteres> FindidAspetComp(){
String queryString = "from Criteres c ,TypeCompetence t where c.id_type_compete = t.id_type_compete AND t.id_type_compete = 4 ";
return getHibernateTemplate().find(queryString);
}
HQL从不使用表名和列名。它始终使用实体名称和字段/属性名称。你所需要的只是
select c from Criteres c where c.typeCompetence.id = 4
阅读。请确定你的名字。实体不应具有复数形式,因此应将Critere
命名为Critere
getCriteres()
应命名为getCriteres()
。我甚至不明白FindidAspetComp()
应该是什么意思。它不遵守Java命名约定:方法以小写字母开头,并且采用驼峰格式
javax.servlet.ServletException: could not resolve property: id_type_compete of: tn.com.ModuleEVL.domaine.Criteres [from tn.com.ModuleEVL.domaine.Criteres c ,tn.com.ModuleEVL.domaine.TypeCompetence t where c.id_type_compete = t.id_type_compete AND t.id_type_compete = 4 ];
select c from Criteres c where c.typeCompetence.id = 4