我已经在MySQL中创建了一个视图,并在JPA中将其用作实体,
@Entity
@Immutable
@Table(name = "my_view")
现在我面临的问题是我正在尝试通过在查询对象中设置setMaxResults来进行分页,在后端发生的是视图没有限制,因此它试图获取所有记录,然后它应用了setMaxResults,这破坏了我本可以编写本机查询的性能,但是有点混乱。
联合查询将如下所示
select e from myViewEntity where 1=1 and (adding addition constraints as parameter)
我的问题有什么办法可以将Limit作为动态值传递给视图?
注意:我正在使用别名将约束传递给视图。
答案 0 :(得分:0)
通过动态传递firstResult和maxResults的值,可以在以下查询中使用setFirstResult
和setMaxResults
方法。
List<User> users = entityManager().createQuery("SELECT o FROM User o", User.class).setFirstResult(firstResult).setMaxResults(maxResults).getResultList();