Hibernate下不同数据库随机选取记录的HQL实现方式

2022-02-12 476点热度 0人点赞 0条评论

需求

需要select某个表,随机获取多条记录

实现

利用rand()函数,hibernate会根据数据库不同(例如spring.jpa.properties.dialect,MySQL是org.hibernate.dialect.MySQLDialect,Oracle是org.hibernate.dialect.Oracle10gDialect),生成相应数据库的SQL

/**
 * 返回随机选择的size个记录
 */
public List<Student> listStudents(int size) {
    String hql = "from Student t where 1=1 order by rand()";
    Query query = sessionFactory.getCurrentSession().createQuery(hql);
    return query.setMaxResults(size).list();
}

 

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论