如何获得前5个元素的Hibernate

时间:2016-09-05 18:26:08

标签: java spring hibernate spring-boot

我有一个很长的对象,所以为了让系统更快,我决定只在#34;出勤率#34;在" get"检索时,属性(insted以显示所有元素)服务。

我有一个参加者名单,但有一种方法可以说只有前5名(在名单上获得),当我从"详细信息"服务,我会全力以赴。

@ManyToMany
private List<Attendance> attendance;

2 个答案:

答案 0 :(得分:1)

编写自定义的repostitory,注入entitymanager并使用类似的查询:

entityManager.createQuery("Select a from Enity e join e.attendence a")
             .setMaxResults(5)
             .getResultList();

答案 1 :(得分:0)

即使你可以通过Hibernate Criteria来做:

public List findByLimit(Class persistentClass, String orderproperty, int limit)
    {
        Session session = getSession(); // Get Session here 
        try
        {
            Criteria criteria = session.createCriteria(persistentClass);
            criteria.addOrder(Order.desc(orderproperty));
            criteria.setMaxResults(limit);
            criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
            return criteria.list();

        }
        catch (RuntimeException re)
        {
            //Catch exception 
        }
        finally
        {
            //close the session
        }
    }

现在调用上面的函数:

findByLimit(Example.class,id,5);  // here id is your order property