如何将Spring Data JPA查询提取到单独的文件中

时间:2016-11-14 21:30:14

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

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:我知道查询可以使用Repository注释直接存储在@Query中,但我们的维护团队希望将其提取出来。

谢谢: - )

1 个答案:

答案 0 :(得分:2)

我认为在您的情况下,您可以使用具有不同名称/位置的多个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>