Spring Data JPA,外部化本地查询

我正在使用Spring数据jpa执行本地查询,这是示例。

@Query(value = "select name from customer", nativeQuery = true) 

public List<String> findNameNative() ;

现在,由于公司的限制,无法将整个查询放在这里,但是查询非常大,例如100行。

N我们有很多这样的查询。

有没有一种方法可以在单独的文件(如xml或属性文件)中定义查询,并在此处引用它们。(保持代码干净)

寻求帮助。

谢谢。

回答:

经过多方努力和尝试,找到了解决方案。

1)在项目的资源文件夹中创建xml文件(使用任何名称)。在资源/ query中说testSQL.xml

2)遵循testSQL.xml中“ orm.xml”的xml标准,此副本粘贴标头并创建的标签,

<?xml version="1.0" encoding="UTF-8" ?>

<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"

version="1.0">

<named-native-query>

</named-native-query>

</entity-mapping>

3)在此xml中,使用named-native-query标签创建标签。

<named-native-query name="XyzEntity.methodName">

<query>

<! [CDATA[

Your native query

] ] >

</query>

</named-native-query>

注意->可以添加多个这样的本机命名查询标记,并且所有标记必须位于

<entity-mapping> </entity-mapping>

4)在上一步的名称标签中提到的“ XyzEntity”应具有一个Jpa存储库,在该存储库中,我们应具有与该标签同名的方法。IE浏览器

public interface XyzRepo extends JpaRepository <XyzEntity, Long> {

Tuple methodName() ;

}

5)在应用程序属性文件中添加testSQL.xml,如下所示

spring.jpa.mapping-resources = query/testSQL.xml

N然后您可以将此方法称为正常的spring方法。

请让我知道是否有人坚持下去并需要详细的解决方案。

以上是 Spring Data JPA,外部化本地查询 的全部内容, 来源链接: utcz.com/qa/412084.html

回到顶部