我正在使用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方法。
请让我知道是否有人坚持下去并需要详细的解决方案。