优化Hibernate层

时间:2017-05-30 18:43:54

标签: spring hibernate

将逻辑从遗留应用程序(SQL / coldfushion)移动到Spring Rest with Hibernate之后,我们遇到了应用程序的缓慢。主要原因是Hibernate我们注意到生成了许多查询,我们曾经在遗留应用程序中使用一个查询(两页长查询)。

现在写,我正在考虑选择正确的提取策略并尝试优化代码。你能不能给我一些我需要调查的领域来优化Hibernate层或任何其他的sujjestions?

2 个答案:

答案 0 :(得分:0)

  • 尝试使用DTO而非实体(您可以直接从数据库加载DTO)
  • 查看加载策略(Eager或Lazy)
  • 尝试使用原生查询更多
  • 尝试使用更多参数来限制结果集
  • 您还可以利用一些缓存技术(缓存所有静态数据)
  • 尝试为每个实体
  • 实施hashCodeequals

答案 1 :(得分:0)

  1. 如果您使用HQL查询,则添加' 加入提取',它可以避免n + 1查询问题。有关join fetch
  2. 的更多信息

    例如:

    select a from Model a 
    inner join fetch a.b as b
    
    1. 添加' 索引'对于在where where condition中使用的列。
    2. 例如:为列添加索引' name'用于何处条件。

      select a from Model a where a.name ='x'
      

      请按照以下链接:

      http://www.thoughts-on-java.org/tips-to-boost-your-hibernate-performance/

      https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/performance.html