jpa - 限制来自连接的记录数

标签 jpa spring-data-jpa jpa-2.1

我有这个实体

@Entity
public class RentAmount {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long rentAmountId;

    private BigDecimal unpaidBalance;

    private BigDecimal cashAdvance;

    private BigDecimal totalRentAmount;

    private LocalDate paymentRentDueDate;

    private LocalDate paymentDueDate;

    @OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE}, fetch = FetchType.LAZY)
    @OrderBy
    private Set<RoomPayment> roomPaymentList;

    @OneToOne
    private Lodger lodger;
}

我的查询

select r from RentAmount r Join fetch r.lodger l join fetch l.bailList b join fetch r.roomPaymentList p where r.paymentRentDueDate <= :date and b.paymentPeriod=:paymentPeriod order by r.rentAmountId

RoomPaymentList 可以非常大,我正在寻找一种方法来限制返回的记录数。

有没有办法限制 roomPaymentList 中值的数量?

最佳答案

如果我没理解错 - 您想要限制每个 RentAmountRoomPaymentList 行数,但不限制结果集中的行数。如果是这样,那么在 JPA 中就没有这样的方式。但是您可以编写一些 native 查询或存储过程并将其限制在子查询等中(Example of such query for MS SQL)。

关于jpa - 限制来自连接的记录数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36019796/

相关文章:

java - 如何配置 hibernate 以扫描不同模块中的实体

java - JpaPagingItemReader 无法读取数据并转到下一步

hibernate - JPA 2.1 与 Liberty Profile 16.0.0.4 的集成问题

java - JPA 从数据库中创建、编辑和删除实体

java - 配置 JPA 以与任何 JPA 实现配合使用的正确方法

java - jpa中如何调用表函数

hibernate - 如何使用 JPA 和 Hibernate 保存和加载大型 Graph 结构?

spring-data - 如何正确使用 Locking 或 Transactions 来防止使用 Spring Data 重复

java - 如何在 Spring Boot Java 中编写一个函数来处理 JPA 存储库中的自定义查询?

hibernate JPA : Update query ( only updating version ) is getting fired even if its not changed at all