如何传递jpa视图实体的动态限制值?

mxg2im7a  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(401)

我在mysql中创建了一个视图,我在jpa中使用这个视图作为实体,

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

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

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

我的问题是,有没有什么方法可以将limit作为动态值传递给视图??
注意:我使用别名将约束传递给视图。

nbnkbykc

nbnkbykc1#

你可以用 setFirstResult 以及 setMaxResults 方法通过动态传递firstresult和maxresults的值。

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

相关问题