在Hibernate分页中获取单个列值而不是实体

在Hibernate分页中获取单个列值而不是实体,hibernate,pagination,Hibernate,Pagination,技术堆栈: 春季4 冬眠3 角度2 我正在处理一个需要分页的应用程序。 数据将显示在表格中,数据大部分为只读 我们不打算修改数据 我的问题是: 我读了很多关于分页的文章,所有人都建议使用HQL和检索实体 但是,如果我的数据是只读的,为什么我需要检索实体并创建额外的开销?Hibernate必须管理这些实体 我将只获取所需的列值并显示在表中。 在每个页面边界处都会有一个到数据库的往返过程(因为不会进行缓存),但如果我们不在hibernate中使用缓存级别机制,那么无论如何都会发生这种情况 即使我们使

技术堆栈:

春季4

冬眠3

角度2

我正在处理一个需要分页的应用程序。 数据将显示在表格中,数据大部分为只读 我们不打算修改数据

我的问题是:

我读了很多关于分页的文章,所有人都建议使用HQL和检索实体

但是,如果我的数据是只读的,为什么我需要检索实体并创建额外的开销?Hibernate必须管理这些实体

我将只获取所需的列值并显示在表中。 在每个页面边界处都会有一个到数据库的往返过程(因为不会进行缓存),但如果我们不在hibernate中使用缓存级别机制,那么无论如何都会发生这种情况

即使我们使用缓存,管理缓存及其条目所需的工作量肯定不仅仅是获取所需的列值

这不是更好的设计方法吗?
请给我一些建议

这是一个主观问题,但我遵循的一般规则是:

  • 使用DELETION/UPDATE/INSERTION=>fetch实体进行查询对于管理状态来说是微不足道的,而且您还可以从乐观锁定机制中获益
  • Just querying=>使用结果类进行分页,这意味着您将获得一个就绪的DTO对象作为查询的结果