【问题标题】:How to extract Spring Data JPA query to separate file如何将 Spring Data JPA 查询提取到单独的文件中
【发布时间】:2017-03-28 15:28:52
【问题描述】:

Spring Data JPA 允许将jpqlsql 查询提取到orm.xml,如Spring Data Jpa Reference 中所述。

在这种情况下,多个查询将在单个 orm.xml 文件中结束。在我们的场景中,这将导致巨大的orm.xml,因为我们有几个巨大的查询。

我想实现每个查询都存储在单独的文件中,例如UserRepository findByLastname 的查询将存储在 META-INF/User/findByLastname.jpqlMETA-INF/User/findByLastname.sql 如果它是本机查询。

是否有可能在 Spring Data JPA 中实现这样的逐文件查询提取?

PS:我知道查询可以使用@Query 注释直接存储在Repository 中,但我们的维护团队希望将它们提取出来。

谢谢你:-)

【问题讨论】:

  • 你的维护团队疯了。
  • "orm.xml" 与 Spring 完全无关。它是 JPA API。也不是 Spring Data JPA API。
  • @chrylis 感谢您的反馈。我与维护团队交谈并说服他们不要对每个查询都要求提取查询。查询注释是我更喜欢的,因为一切都在一个地方,这使得存储库更易于理解和重构。

标签: java spring jpa spring-data spring-data-jpa


【解决方案1】:

我认为在您的情况下,您可以使用多个具有不同名称/位置的 orm.xml 文件:

<persistence-unit name="app-unit" transaction-type="JTA">
    ...
    <mapping-file>mapping/orm-user.xml</mapping-file>
    <mapping-file>mapping/orm-settings.xml</mapping-file>
    <mapping-file>mapping/orm-data.xml</mapping-file>
    ...
</persistence-unit>

【讨论】:

    猜你喜欢
    • 2015-05-11
    • 1970-01-01
    • 2017-04-25
    • 1970-01-01
    • 2020-06-09
    • 2022-01-06
    • 2019-02-28
    • 2022-01-23
    • 2015-01-27
    相关资源
    最近更新 更多