//学生
public class User {
private Integer uid;
//用户名
private String username;
//注册时间
private Date regDate;
//课程列表
@OneToMany(cascade=CascadeType.REFRESH)
@JoinColumn(name="user_id")
private List<Course> clist = new ArrayList<Course>();
}
//课程
class Course {
private Integer cid;
//课程
private String coursename;
//分数
private Integer score;
@ManyToOne(cascade = CascadeType.REFRESH)
@JoinColumn(name="user_id")
private User user;
}
学生和课程是一对多的关系
现在要查询总分数在400到500(400<=x<=500)的用户按注册时间desc排序,且要分页
如何不用传统的SQL语句,就用面向对象的方法 或者 HQL的方式
求思路?
------解决方案--------------------
String hql="select c.user from Course c where c.score>400 and c.scroe<500 order by desc";
session.createQuery(hql).setFirstResult(xx).setMaxResults(xx).list();
setFirstResult是从第几条开始,setMaxResults是每次取几条,和mysql的limit的两个参数类似。