Java 如何让前5个元素休眠
我有一个很长的对象,所以为了使系统更快,我决定在“get”服务检索时只显示“Attention”属性中的前5个元素(而不是显示所有元素) 我有一份出席人数列表,但有一种方式可以说,只有前5名(在列表中)才能获得,当我从“细节”服务中获得结果时,我将拥有所有的ITENJava 如何让前5个元素休眠,java,spring,hibernate,spring-boot,Java,Spring,Hibernate,Spring Boot,我有一个很长的对象,所以为了使系统更快,我决定在“get”服务检索时只显示“Attention”属性中的前5个元素(而不是显示所有元素) 我有一份出席人数列表,但有一种方式可以说,只有前5名(在列表中)才能获得,当我从“细节”服务中获得结果时,我将拥有所有的ITEN @ManyToMany private List<Attendance> attendance; @manytomy 私人名单出席情况; 编写一个自定义repository,注入entitymanager并使用如下查询
@ManyToMany
private List<Attendance> attendance;
@manytomy
私人名单出席情况;
编写一个自定义repository,注入entitymanager并使用如下查询:
entityManager.createQuery("Select a from Enity e join e.attendence a")
.setMaxResults(5)
.getResultList();
甚至您也可以通过Hibernate标准执行以下操作:
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
您使用的是spring数据jpa吗?我使用的是spring boot(他使用的是spring存储库),我正在寻找相同的符号,比如
@manytomy(maxResult=5)
@FabioPicheli,我认为通过注释是不可能的,但我用一个连接查询更新了答案,它明确地起到了作用。对于非jpa解决方案,请参见此处:。