如何传递JPA View实体的动态限值?

时间:2018-12-27 05:40:28

标签: mysql hibernate spring-mvc jpa

我已经在MySQL中创建了一个视图,并在JPA中将其用作实体,

@Entity
@Immutable
@Table(name = "my_view")

现在我面临的问题是我正在尝试通过在查询对象中设置setMaxResults来进行分页,在后端发生的是视图没有限制,因此它试图获取所有记录,然后它应用了setMaxResults,这破坏了我本可以编写本机查询的性能,但是有点混乱。

联合查询将如下所示

select e from myViewEntity where 1=1 and (adding addition constraints as parameter)

我的问题有什么办法可以将Limit作为动态值传递给视图?

  

注意:我正在使用别名将约束传递给视图。

1 个答案:

答案 0 :(得分:0)

通过动态传递firstResult和maxResults的值,可以在以下查询中使用setFirstResultsetMaxResults方法。

List<User> users = entityManager().createQuery("SELECT o FROM User o", User.class).setFirstResult(firstResult).setMaxResults(maxResults).getResultList();