Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: ignore case #71

Closed
wants to merge 1 commit into from
Closed

feat: ignore case #71

wants to merge 1 commit into from

Conversation

KyleCB
Copy link
Contributor

@KyleCB KyleCB commented Nov 24, 2023

StartWithIgnoreCase & EndWithIgnoreCase

基於以下討論串,使用 lowwer 作為 ignore case 的方法
spring-projects/spring-data-jpa#2420
https://github.com/spring-projects/spring-data-commons/wiki/Spring-Data-2021.2-(Raj)-Release-Notes

@shihyuho shihyuho added status: on-hold We can't start working on this issue yet status: pending-design-work 動工前需要更多的設計或研究 labels Nov 24, 2023
@shihyuho
Copy link
Member

shihyuho commented Nov 24, 2023

ignore case 不是 jpa 原生的操作, 所以一開始我沒打算放進來, 只能算是業務邏輯上的需求, 但也許比較常遇到而已

如果 domain 這邊要收錄 ignore case 的話, 會需要更多一點思考, 設計跟討論:

一旦要支援, 所有 String 相關的比較邏輯就都要一起支援, 像是 Spring 的 QueryByExample 中, 針對 String 相關的操作 都有支援

在這次 PR 中的實作方式, 是直接挑原本的邏輯再去加上一個邏輯, 若之後需求變多以後, 有可能會出現條件相乘開的可能性, 以使用者在理解或使面, 或是此 domain 維護面都不會是好的選擇

這邊可能要有一些設計, 像是實作 "反向" 邏輯一樣, 做在 Spec#not 中, 就不會出現太多的可能 (這只是舉例因為 ignore case 沒辦法像 not 一樣適用於全部條件, 還不確定做在 Spec 中好不好)

從另一個角度想, 在 Spring 的 Query Mehtod 中, 其實 IgnoreCase 只支援 equals 的比較, 從這角度來看也許他們也是認為無限擴展下去不是一個好方法, 所以只提供一個最基本但最常見的邏輯

這也許也是一個選擇, 畢竟在目前 spec mapper 的架構中, 預留的擴展的點很多, 專案都還是可以來實作的

image

@shihyuho shihyuho closed this Mar 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status: on-hold We can't start working on this issue yet status: pending-design-work 動工前需要更多的設計或研究
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants