当前位置: 首页 > 知识库问答 >
问题:

Spring Data JPA OneToMany分页FetchType子选择

濮阳俊明
2023-03-14

使用Spring Data,JPA(4.0.8)和Hibernate(4.2.16)时,我遇到了一个问题,无法将分页传递到JPA OneToMany列表的子选择点击。在内部列表中,subselect选择要与main组合的所有元素,而不仅仅是给定页面的元素。

例如:

主要JPA实体:

@Entity
@NamedQuery(name="Message.findAll", query="SELECT m FROM Message m")
public class Message implements Serializable {
...
//uni-directional many-to-one association to Message_Review
@OneToMany(cascade={CascadeType.ALL}, fetch=FetchType.EAGER)
@JoinColumn(name="message_id", referencedColumnName="message_id", insertable=false, updatable=false)
@Fetch(FetchMode.SUBSELECT) 
private Set<Message_Review> messageReviews;
SELECT TOP ? MESSAGE0_.MESSAGE_ID AS MESSAGE_1_0_, MESSAGE0_....... AND NOT (EXISTS (SELECT MESSAGEREV1_.MESSAGE_ID, MESSAGEREV1_.......))
SELECT messagerev0_.message_id as message_2_0_1_, 
.....
where messagetop0_.message_id in 
(select message0_.message_id 
from .......
)

当使用@fetchmode.subselect来限制SQL点击数时,有没有关于如何将分页传递到JPA实体中的任何列表的想法?

共有1个答案

公良同
2023-03-14

您好,这是非常正常的行为,当您有Subselect提取。应该是这样的。如果您想要更多的可滚动行为,可以使用@BatchSize(size=5)注释,其中的大小告诉您一次将获取多少个集合。

假设您有类似于Category->Item relationship的内容,并且您确实有:

从类别中选择*

从(1,2,3,4,5)中categoryID所在的项中选择*

在我看来,您需要的是@BatchSize和FetchType.Select。

我不是很好的解释,所以我也发送给你一个链接。请注意Subselect使用得很早。http://www.mkyong.com/hibernate/hibernate-fetching-strategies-examples/

 类似资料:
  • 子报告有两个细节带,第一个是“标题”,第二个是另一个子报告。这些乐队在两页纸上彼此分开。 我尝试了许多属性,但没有结果,如“忽略分页”和“允许拆分” 我的问题是:如何强制ireport不将子报表拆分到两页上?

  • 本文向大家介绍element跨分页操作选择详解,包括了element跨分页操作选择详解的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了element跨分页操作选择的具体代码,供大家参考,具体内容如下 业务需求:在批量导出或者批量删除的时候会涉及到跨分页导出或者批量删除,这是你会发现,当你选择后点击分页,发现之前选择的数据已经没有了,现在就是要满足分页点击分页后原始数据保留 以上就是本

  • 我有SQL声明 关系为1-N:用户可能有许多文件。 这有效地选择了第二个10元素页面。 问题是这个查询限制/偏移了一个连接的表,但我想限制/偏移第一个(

  • 问题内容: 我有一个@Entity叫做User。它具有一组变更集,如下所示: 我有一个用户库: 和一个ChangesetRepository: 调用GET 或产生分页响应。 如果我调用GET,那么我将所有结果存储在一个数组中,并且不会发生分页。 有没有办法向Spring Data Rest指示我想通过其父User访问它时以一种可分页的方式返回变更集集​​合?变更集集将快速增长,我宁愿不要在单个页面

  • 和ChangeSetRepository: 在或上调用GET会产生分页响应。 如果我在上调用GET,那么我将在单个数组中获得所有结果,并且不会发生分页。 我保留了双向关系,但也能够通过在变更集上使用对用户隐藏到变更集的链接。 侧注:将关系设置为exported=false似乎隐藏了链接,但实际上并没有删除映射。/users/1/changesets没有广告,但它仍然有效。

  • 本文向大家介绍bootstrap table 服务器端分页例子分享,包括了bootstrap table 服务器端分页例子分享的使用技巧和注意事项,需要的朋友参考一下 1,前台引入所需的js 可以从官网上下载 2 后台 获取limit offset ,有些网站上 要格式化传入参数 获取pageSize,pageIndex 反正我是没有成功,如果知道 可以分享给我 以上所述就是本文的全部内容了,希望