嘗試測驗 LocalDate 是否包含給定的年、日或月。
例如,給定條件“1979”,我想過濾findAll(Example<S> example)
JPA 查詢回傳的行,使其回傳包含“1979”的任何行。
“問題”是物體將日期(比如說出生日期)定義為 a LocalDate
,因此,這樣做:
ExampleMatcher personFilter = ExampleMatcher.matchingAll()
.withMatcher("birthDate", ExampleMatcher.GenericPropertyMatchers
.contains().ignoreCase());
personPage = repository.findAll(personFilter);
PersonFilter#birthDate 本身就是一個LocalDate
.
基本上,我必須讓這個物體將出生日期宣告為字串才能使過濾器作業,但這是不可能的,因為資料庫本身將其存盤為date
.
有沒有辦法解決這樣的問題?喜歡覆寫匹配作業的方式嗎?
uj5u.com熱心網友回復:
簡短的回答是,你沒有。
有關更高級的用例和謂詞定義,請查看Querydsl 支持。
長答案是:
Query by Example (QBE)是一種用戶友好的查詢技術,具有簡單的界面。它允許創建動態查詢,并且不需要您撰寫包含欄位名稱的查詢。
Query by Example 非常適合多種用例:
- 使用一組靜態或動態約束查詢您的資料存盤。
- 頻繁重構域物件,而不必擔心破壞現有查詢。
- 獨立于底層資料存盤 API 作業。
Query by Example 也有幾個限制:
- 不支持嵌套或分組屬性約束,例如 firstname = ?0 或 (firstname = ?1 and lastname = ?2)。
- 僅支持字串的開始/包含/結束/正則運算式匹配和其他屬性型別的精確匹配。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/441652.html
上一篇:更新2個存盤庫的事務服務方法