【问题标题】:Method names too long in Spring JPASpring JPA 中的方法名称太长
【发布时间】:2019-09-22 15:53:04
【问题描述】:

我正在使用 Spring Data JPA。我正在使用规范化数据库,这意味着,要获得我想要的完整详细信息,我必须加入许多表。如您所知,JPA 根据查询生成方法名称。但是,由于多次连接,我的方法名称变得很长。有时,它会超过 250 个字符。 我正在寻找带有 JPA 方法的 @query 注释,而不是自动生成的 JPA 方法名称。 如果我使用@query 注释,我想知道性能影响? 另外,请提出任何替代方案来解决我的长方法名称,同时考虑性能。

【问题讨论】:

  • 我不确定性能,但查询注释是正确的方式
  • 与实际运行查询相比,解析查询所花费的时间是最少的,因此性能不是您需要关心的问题。确保数据库具有正确的索引以获得良好的访问计划更为重要。

标签: java spring jpa


【解决方案1】:

每当您使用 Spring Data(即List<MyObj> findAllByName(String name))编写查询时,spring data 实际上生成查询的方式与使用 @Query 注释编写查询的方式相同。因此,从技术上讲,如果您在@Query 注释中将查询写为HQLJPQL,启动时间会更快。最高效的方法当然是使用原生查询,但在游戏后期可能会很麻烦。

【讨论】:

  • 我可以知道为什么在游戏后期会很痛苦吗?能否请您分享一些例子或经验,以便我理解。
  • 假设您想从一个 Postgres 版本迁移到另一个版本。在这种情况下,您将不得不手动调整所有查询。如果您 JPQL/HQL 您的查询是根据您使用的驱动程序版本构建的。如果您从 MySQL 迁移到 PostgreSQL 或 Oracle,情况会更糟。
猜你喜欢
  • 2020-08-24
  • 1970-01-01
  • 2019-08-26
  • 2020-09-13
  • 2019-06-10
  • 2021-09-18
  • 2018-11-16
  • 1970-01-01
  • 2019-02-14
相关资源
最近更新 更多