2014-07-23 65 views
0

我想在SpringMvc模型類中實現多對一的關係。但我無法找到任何能夠理解這項工作的例子。在Hibernate查詢中出錯。錯誤:org.hibernate.hql.ast.QuerySyntaxException

return (Student_Course) session.getCurrentSession().createQuery("from Student_Course as sc where c.user.id=?").setInteger(0, user_id).uniqueResult() 

在上面的代碼中,我試圖通過hibernate查詢從數據庫中檢索Student_Course表,但它給了我這個錯誤。

錯誤

org.hibernate.hql.ast.QuerySyntaxException: Invalid path: 'c.user.id' [from com.sanjay31321.sys.model.Student_Course as sc where c.user.id=?] 

是否有任何其他方式,我可以寫這個的HQL查詢,以便我能得到這個表。請幫幫我。

場類別:

@Entity @Table (name="Course") 
public class Course { 
    @Id @Column @GeneratedValue(strategy=GenerationType.AUTO) 
    private int id; 

    @Column(name="course_name") 
    private String name; 

    //Setter and Getter 
} 

Student_Course類別:

@Entity @Table (name="Student_course") 
public class Student_Course { 

    @Id @Column @GeneratedValue(strategy=GenerationType.AUTO) 
    private int id; 

    @ManyToOne @JoinColumn(name="user_id") 
    private User user; 

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

    //Setter and Getter 
} 

用戶類別:

@Entity @Table (name="user") 
public class User { 

    @Id @Column @GeneratedValue(strategy=GenerationType.AUTO) 
    private int id; 

    @Column(name="email") @Email 
    private String email; 

    @Column(name="password") 
    private String password; 

    //Setter and Getter 
} 

StudentCourseDaoImpl類

@Repository 
public class StudentCourseDaoImpl implements StudentCourseDao{ 

    @Autowired private SessionFactory session; 

    @Override 
    public Student_Course getStudentCourseByUserID(int user_id) { 
     return (Student_Course) session.getCurrentSession().createQuery("from Student_Course as sc where c.user.id=?").setInteger(0, user_id).uniqueResult(); 
    } 

} 

回答

2

你的別名是sc,你的列名是user_id,所以它應該是

"from Student_Course as sc where sc.user_id=?" 

代替。

+0

嘗試像下面這樣做 –

+0

它正在工作..我在那裏犯了一個錯誤...非常感謝你的朋友。 –