查詢SELECT * FROM books WHERE (isbn || ' ' || author || ' ' || name) ILIKE '%el%'回傳

在 pgAdmin(PostgreSQL 工具)中執行時從完整資料庫

但是當我嘗試在 Spring Boot 中運行它時,相同的查詢似乎不起作用,它回傳一個空串列。我不知道我的查詢是特定于 PostgreSQL 的還是本地 SQL,如果它不是本地 SQL,那么我想它不起作用是合理的,nativeQuery = true因為如果我理解正確意味著本地 SQL 是預期的。沒有它,應用程式甚至無法運行。如果情況如所述,我如何指定我要在查詢中使用 PostgreSQL?
BookController.java
@GetMapping("/search")
public String search(@RequestParam(value = "keyword") String keyword, Model model) {
List<Book> books = bookService.search(keyword);
model.addAttribute("books", books);
return "books";
}
BookService.java
public List<Book> search(String keyword) {
return bookRepository.search(keyword);
}
BookRepository.java
@Repository
public interface BookRepository extends CrudRepository<Book, Long> {
List<Book> findAll();
@Query(value = "SELECT * FROM books WHERE (isbn || ' ' || author || ' ' || name) ILIKE '%?%'", nativeQuery = true)
List<Book> search(String keyword);
}
Books.html我輸入的值是el.
<form class="col-12 col-lg-auto mb-3 mb-lg-0 me-lg-3" th:action="@{books/search}" method="get">
<input th:name="keyword" type="search" class="form-control form-control-dark" placeholder="Search..." aria-label="Search">
</form>
uj5u.com熱心網友回復:
該引數?可能未在查詢中正確應用。更改'%?%'到'%' || ? || '%'如下所示:
@Query(value = "SELECT * FROM books WHERE (isbn || ' ' || author || ' ' || name) ILIKE '%' || ? || '%'", nativeQuery = true)
uj5u.com熱心網友回復:
嘗試
@Query(value = "SELECT * FROM books WHERE (isbn || ' ' || author || ' ' || name) ILIKE %?1%", nativeQuery = true)
List<Offers> search(String keyword);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/394222.html
標籤:爪哇 春天 数据库 PostgreSQL的 弹簧数据-jpa
上一篇:java.lang.NoClassDefFoundError:groovy/lang/Script但類已加載...?
