[英]Spring data jdbc spel
I tried to play with spring data jdbc after several month of spring data mongodb and jpa... And my surprise... I don't find my favorite function easily: Example, Predicate, Spel...
所以,此時,我試圖讓@query 與 spel 一起工作......我有一個疑問......它存在????
2020-06-25 18:45:47.566 ERROR [,,,] 15472 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessApiUsageException: No value supplied for the SQL parameter '#{#query.lastname}': No value registered for key '#{#query.lastname}'] with root cause
org.springframework.dao.InvalidDataAccessApiUsageException: No value supplied for the SQL parameter '#{#query.lastname}': No value registered for key '#{#query.lastname}'
我的要求很簡單:
public interface UserRepository extends PagingAndSortingRepository<User, Long> {
User findByLastname(String lastname);
@Query("select * from USER where lastname= :#{#query.lastname} and firstname= :#{#query.firstname} and age=:#{#query.age}")
Page<User> findBySearchUserQuery(@Param("query") SearchUserQuery query, Pageable page);
}
謝謝你的幫助,尼科
截至目前 Spring(直到 Spring 數據 JDBC 2.1)@Query 僅支持命名參數,不支持在 @Query 中使用 SEL。 最簡單的解決方案是為查詢方法提供所有參數。
@Query("select u from USER as u where u.lastname= :lastname and u.firstname= :firstname and u.age=:age")
Page<User> findBySearchUserQueryParams(String firstname, String lastname, int age, Pageable page);
您不應該在查詢中寫 [*],而是將 class 命名為某個名稱並返回它
您的查詢將是這樣的
@Query("select u from USER as u where u.lastname= :#{#query.lastname} and u.firstname= :#{#query.firstname} and u.age=:#{#query.age}")
Page<User> findBySearchUserQuery(@Param("query") SearchUserQuery query, Pageable page);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.