我的應用程序使用JPA來訪問後端數據庫。如何使用JPA在字段上搜索子字符串?
我有一個Java類映射到一個表。該類有一個由一系列「0」和「1」組成的字符串字段(稱爲狀態)。我需要根據字段的第二個字符選擇一些記錄。這裏是我可以不使用JPA(我正在使用MS SQLServer)。
SELECT * FROM Machines where SUBSTRING(status, 2, 1) = '1'
我該如何使用JPA?
我的應用程序使用JPA來訪問後端數據庫。如何使用JPA在字段上搜索子字符串?
我有一個Java類映射到一個表。該類有一個由一系列「0」和「1」組成的字符串字段(稱爲狀態)。我需要根據字段的第二個字符選擇一些記錄。這裏是我可以不使用JPA(我正在使用MS SQLServer)。
SELECT * FROM Machines where SUBSTRING(status, 2, 1) = '1'
我該如何使用JPA?
有在JPA的子功能:
4.6.17.2.1 「字符串函數」
(...)
SUBSTRING(string_primary ,simple_arithmetic_expression [,simple_arithmetic_expression])
(...)
SUBSTRING函數的第二個和第三個參數表示要返回的子字符串的起始位置和長度。這些參數是整數。 第三個參數是可選的。如果未指定,則返回從字符串的開始位置到末尾的子串 。字符串的第一個位置用1表示。SUBSTRING函數 返回一個字符串。
JPQL有一個可用於修剪實體的子字符串函數。請確保您在查詢中使用實體名稱,並且還要注意子字符串函數不是零索引。
SELECT * FROM Machines m where SUBSTRING(m.status, 2, 1) = '1'
Piotr,非常感謝您的意見。最好。 – curious1