sonamuFilterλ Entityμ νλλ₯Ό νμ
μμ νκ² νν°λ§νλ κΈ°λ₯μ
λλ€. νν° κ°λ₯ν νλμ νμ©λλ μ°μ°μκ° Entity μ μμμ μλμΌλ‘ μΆλ‘ λμ΄ μλͺ»λ νν°λ§ μλλ₯Ό νμ
λ 벨과 λ°νμ λͺ¨λμμ λ°©μ§ν©λλ€.
sonamuFilterλ Entityμ propsλ₯Ό κΈ°λ°μΌλ‘ μλ μμ±λ©λλ€. κ°μ νλ(virtual fields)λ νν°λ§
λμμμ μ μΈλλ©°, FKλ₯Ό μμ±νλ κ΄κ³(BelongsToOne, hasJoinColumnμ΄ μλ OneToOne)λ {κ΄κ³λͺ
}_id ννλ‘ νν°λ§ν μ μμ΅λλ€.κΈ°λ³Έ μ¬μ©λ²
νν° νμ
FilterQuery
κ° Entityμ λν΄FilterQuery<T> νμ
μ΄ μλ μμ±λ©λλ€:
FilterCondition
νλ νμ μ λ°λΌ μ¬μ© κ°λ₯ν μ°μ°μκ° κ²°μ λ©λλ€:νμ λ³ μ§μ μ°μ°μ
μ¬μ© μμ
μ«μ νν°λ§
λ¬Έμμ΄ νν°λ§
λ μ§ νν°λ§
Enum νν°λ§
NULL 체ν¬
λ³΅ν© μ‘°κ±΄ (AND)
FK (Foreign Key) νν°λ§
FKλ₯Ό μμ±νλ κ΄κ³(BelongsToOne, hasJoinColumnμ΄ μλ OneToOne)λ {κ΄κ³λͺ
}_id ννλ‘ νν°λ§ν μ μμ΅λλ€. λ΄λΆμ μΌλ‘ integer νμ
μ κ°μ propμΌλ‘ λ³νλμ΄ λͺ¨λ μ«μ μ°μ°μλ₯Ό μ§μν©λλ€.
FK νν°λ§μ κ΄κ³λͺ
μ΄ μλ
{κ΄κ³λͺ
}_id νμμ μ¬μ©ν΄μΌ ν©λλ€. μλ₯Ό λ€μ΄ employee κ΄κ³κ° μλ€λ©΄
employeeκ° μλ employee_idλ‘ νν°λ§ν©λλ€.URL 쿼리 μ€νΈλ§
νλ‘ νΈμλμμ URL 쿼리 μ€νΈλ§μΌλ‘ νν°λ₯Ό μ λ¬ν μ μμ΅λλ€:μ ν¨μ± κ²μ¦
sonamuFilterλ λ€μμ κ²μ¦ν©λλ€:
1. νν° κ°λ₯ν νλ
Entityμ propsμ μ μλ νλλ§ νν°λ§ν μ μμ΅λλ€. κ°μ νλλ νν°λ§ λμμμ μ μΈλ©λλ€. λ¨, FKλ₯Ό μμ±νλ κ΄κ³(BelongsToOne, hasJoinColumnμ΄ μλ OneToOne)λ {κ΄κ³λͺ
}_id ννλ‘ νν°λ§ν μ μμ΅λλ€.
2. μ§μνλ μ°μ°μ
νλ νμ μ λ§λ μ°μ°μλ§ μ¬μ©ν μ μμ΅λλ€.3. Enum κ°
Enum νμ μ νλλ μ μλ κ°λ§ νμ©ν©λλ€.κΈ°μ‘΄ νν°μμ κ΄κ³
sonamuFilterλ κΈ°μ‘΄ ListParamsμ 컀μ€ν
νν°μ ν¨κ» μ¬μ©ν μ μμ΅λλ€:
λ΄λΆ λμ
1. νν° μ κ·ν (normalizeFilterQuery)
URL 쿼리 μ€νΈλ§μΌλ‘ μ λ¬λ λ¬Έμμ΄ κ°μ μ μ ν νμ μΌλ‘ λ³νν©λλ€.2. μ ν¨μ± κ²μ¦ (validateSonamuFilters)
Entityμ νν° λ©νλ°μ΄ν°λ₯Ό κΈ°λ°μΌλ‘ νν° μΏΌλ¦¬λ₯Ό κ²μ¦ν©λλ€.3. 쿼리 μ μ© (applySonamuFilters)
κ²μ¦λ νν° μ‘°κ±΄μ Puri 쿼리 λΉλμ μ μ©ν©λλ€.λ€μ λ¨κ³
findMany
리μ€νΈ μ‘°ν λ° νμ΄μ§λ€μ΄μ
Puri 쿼리 λΉλ
κ³ κΈ μΏΌλ¦¬ μμ±νκΈ°