2013-05-13 5 views
0

Vous avez cette ligne pour obtenir la liste des "modules" par "course_id" de la base de données:requête de base de données Spring Hibernate ne fonctionne pas

return sessionFactory.getCurrentSession().createCriteria(Module.class).add(Restrictions.eq("course_id",course_id)).list(); 

À terme, il échoue avec cette erreur:

WARNING: StandardWrapperValve[dispatcher]: PWC1406: Servlet.service() for servlet dispatcher threw exception 
org.hibernate.QueryException: could not resolve property: course_id of: miniVLE.beans.Module 

Course_id - est une chaîne. Est-ce possible parce que course_id est une clé étrangère dans la base de données?

@ManyToOne 
    @JoinColumn(name="course_id") 
    private Course course; 

Répondre

1

Ceci est dû au fait que vous n'avez pas la propriété course_id dans Module.class. Dans les critères, vous devez utiliser les noms de propriétés et non les noms de colonnes. Si vous n'avez pas de getter/setter tel que getCourse_id()

+0

Donc, si j'ai un peu comme "course" (voir le code ci-dessus), je dois redéclarer Restrictions.eq ("course_id", course_id) à Restrictions .eq ("cours", cours_id) et ajouter des getters pour le "cours"? – exomen

+0

@exomen - Merci d'avoir posté le code final pour aider les autres. Toutefois, au lieu de modifier cette réponse, vous pouvez publier votre code final sous la forme d'une réponse distincte. – Leigh

Questions connexes