Spring 优化休眠层

Spring 优化休眠层,spring,hibernate,Spring,Hibernate,在将逻辑从遗留应用程序(SQL/ColdBushion)移动到使用Hibernate的SpringREST之后,我们在应用程序中遇到了一个缓慢的问题。主要原因是在使用Hibernate时,我们注意到生成了许多查询,而在遗留应用程序中,我们通常只使用一个查询(两页长的查询) 现在写,我正在考虑选择合适的获取策略,并尝试优化代码。你能给我一些我需要研究的其他方面来优化Hibernate层或任何其他Sujjes吗 尝试使用DTO not实体(可以直接从数据库加载DTO) 查看加载策略(急切或懒惰)

在将逻辑从遗留应用程序(SQL/ColdBushion)移动到使用Hibernate的SpringREST之后,我们在应用程序中遇到了一个缓慢的问题。主要原因是在使用Hibernate时,我们注意到生成了许多查询,而在遗留应用程序中,我们通常只使用一个查询(两页长的查询)

现在写,我正在考虑选择合适的获取策略,并尝试优化代码。你能给我一些我需要研究的其他方面来优化Hibernate层或任何其他Sujjes吗

  • 尝试使用DTO not实体(可以直接从数据库加载DTO)
  • 查看加载策略(急切或懒惰)
  • 尝试更多地使用本机查询
  • 尝试使用更多参数来限制结果集
  • 您还可以利用一些缓存技术(缓存所有静态数据)
  • 尝试为每个实体实现
    hashCode
    equals
  • 如果使用HQL查询,然后添加“连接获取”,则可以避免n+1查询问题。有关
  • e、 g:

  • 为在where条件下使用的列添加“索引”
  • e、 g:为where条件中使用的列“name”添加索引

    select a from Model a where a.name ='x'
    
    请点击以下链接:

    引用Gavin King的话,当您使用Hibernate时,您不必事事都使用它。通常,缓慢是由于获取太多数据或延迟或急切的映射造成的。
    select a from Model a where a.name ='x'