在Spring Boot服务中创建自定义函数

时间:2018-03-30 07:26:09

标签: spring spring-boot spring-data-jpa

我正在编写一个简单的Spring Boot Application。我正在创建一个存储库,然后是它的服务,然后是它的实现 如果我使用JPA存储库的内置函数,代码工作正常。 但是,如果我尝试在服务接口中创建一个函数,它会抛出错误。 如果我在存储库中创建该函数,它不会抛出该错误 这是代码:

SELECT rule, 
       DATASET, 
       type, 
       LISTAGG(DISTINCT source,';') within GROUP ( ORDER BY source) AS source,
       TARGET, 
       LISTAGG(DISTINCT filter,';') within GROUP ( ORDER BY filter) AS filter 
FROM demo_table;

}

1 个答案:

答案 0 :(得分:1)

在服务中,您调用的是存储库层中不存在的函数。存储库中没有名为findBymo的方法。如果LocalModel有一个名为mo的字段,您只需在存储库界面中添加一个函数,如此

LocalModel findByMo(String mo);

,它将自动实施。

如果LocalModel没有这样的字段,您应该在存储库中自己实现查询,如此

@Query("select ... query here")
LocalModel findByMo(String mo);