代码之家  ›  专栏  ›  技术社区  ›  Mehdi

休眠多表查询性能

  •  0
  • Mehdi  · 技术社区  · 6 年前

    我有一个项目有一个仪表板页面。在仪表板页面中,我必须显示:

    1. 统计图表
    2. 新信息
    3. 管理员的新用户建议
    4. 新邮件数
    5. 电子不停车收费系统

    现在,上面的每个信息都与数据库中的不同表相关。

    我创建了不同的实体,并使用hibernate。假设 客户端A 打开他的仪表板,我应该执行多个查询来收集所有这些实体的所有信息。以下是挑战:

    1. 由于每个请求在我的程序中一次运行在一个线程中,因此必须完成每个查询才能运行另一个查询(不是同时运行)
    2. 在hibernate中,我们不能同时创建多个查询并映射到不同的实体
    3. @formula注释不能映射整个实体,只能映射单个数据类型

    我在想,获得高效、快速输出的最佳方法是创建一个大型本机查询,并用一个查询同时获取所有数据 但是 如果我要这样做,我必须自己编写本地查询并映射所有内容,这使得使用hibernate的唯一方法变得模糊。

    我想的另一个方法是 执行组件 以及我的应用程序中的多线程

    现在我的问题是,我仍然可以使用hibernate映射并发出高性能查询的最佳方法是什么?

    提前谢谢你

    1 回复  |  直到 6 年前
        1
  •  0
  •   Naros    6 年前

    您的问题似乎源于这样一个概念:您认为需要在一个控制器调用中收集仪表板的所有信息,以便呈现单个页面。你应该退一步,试着 组件化 你的仪表盘。

    换句话说,我的意思是利用ajax的异步特性。

    当浏览器可以处理异步启动多个web请求以呈现单个web页面时,确实没有理由将executor服务与当今的现代浏览器技术结合使用。