delμ ID λ°°μ΄λ‘ μ¬λ¬ λ μ½λλ₯Ό ν λ²μ μμ νλ λ©μλμ
λλ€. νΈλμμ
λ΄μμ μμ νκ² μ€νλλ©°, κΈ°λ³Έμ μΌλ‘ κ΄λ¦¬μ κΆνμ΄ νμν©λλ€.
delμ BaseModelClassμ μ μλμ΄ μμ§ μμ΅λλ€. Entityλ₯Ό μμ±νλ©΄ Syncerκ° κ° Model ν΄λμ€μ μλμΌλ‘ μμ±νλ νμ€ ν¨ν΄μ
λλ€.νμ μκ·Έλμ²
μλ μμ± μ½λ
Sonamuλ Entityλ₯Ό κΈ°λ°μΌλ‘ λ€μ μ½λλ₯Ό μλμΌλ‘ μμ±ν©λλ€:- getPuri(βwβ): BaseModelClass λ©μλλ‘ μ°κΈ°μ© Puri νλ
- transaction(): νΈλμμ μμ
- table().whereIn().delete(): Knex λ©μλλ‘ μμ μ€ν
- ids.length λ°ν: μμ μμ²ν ID κ°μ λ°ν
λ§€κ°λ³μ
ids
μμ ν λ μ½λμ ID λ°°μ΄μ λλ€. νμ :number[]
λ°νκ°
νμ :Promise<number>
μ λ¬ν ID λ°°μ΄μ κΈΈμ΄(ids.length)λ₯Ό λ°νν©λλ€. DBμμ μ€μ λ‘ μμ λ ν μκ° μλλΌ, μμ λ₯Ό μμ²ν IDμ κ°μμ
λλ€.
κΈ°λ³Έ μ¬μ©λ²
λ¨μΌ λ μ½λ μμ
μ¬λ¬ λ μ½λ μμ
μ‘°κ±΄λΆ μμ
νΈλμμ
delμ μλμΌλ‘ νΈλμμ
λ΄μμ μ€νλ©λλ€.
@transactionalκ³Ό ν¨κ»
κΆν νμΈ
κΈ°λ³Έμ μΌλ‘delμ κ΄λ¦¬μ κΆνμ΄ νμν©λλ€.
λ³ΈμΈ λ°μ΄ν° μμ
μ€μ μμ
- νμ νν΄
- κ²μλ¬Ό μμ
- λλ μμ
- μννΈ μμ
APIμμ μ¬μ©
μλ μμ±λ del API
ν΄λΌμ΄μΈνΈ μ½λ
React (TanStack Query)
μΈλ ν€ μ μ½μ‘°κ±΄
CASCADE μ€μ
RESTRICT μ€μ
μλ μ²λ¦¬
μμ νμΈ
μ‘΄μ¬ μ¬λΆ νμΈ
μμ ν νμΈ
μ±λ₯ μ΅μ ν
λ°°μΉ μμ
λλ μμ μ λ°°μΉλ‘ λλ μ μ²λ¦¬νμΈμ.μΈλ±μ€ νμ©
μμ£Ό μμ νλ μΈλ ν€μ μΈλ±μ€λ₯Ό μΆκ°νμΈμ.μ£Όμμ¬ν
1. λ°°μ΄λ‘ μ λ¬
delμ λ°λμ λ°°μ΄μ λ°μ΅λλ€.
2. λ°νκ°μ ids.length
3. CASCADE μ£Όμ
CASCADE μ€μ μ΄ μμΌλ©΄ μλμΉ μμ λ°μ΄ν°κΉμ§ μμ λ μ μμ΅λλ€.4. νΈλμμ κΆμ₯
κ΄λ ¨λ μ¬λ¬ ν μ΄λΈμ μμ ν λλ νΈλμμ μ μ¬μ©νμΈμ.5. κΆν νμΈ
κΈ°λ³Έguards: ["admin"] μ€μ μ λ³κ²½ν λλ μ μ€νμΈμ.
μννΈ μμ vs νλ μμ
νλ μμ (del)
- λμ€ν¬ κ³΅κ° μ μ½
- λ¨μν ꡬ쑰
- 볡ꡬ λΆκ°λ₯
- νμ€ν 리 μμ€
μννΈ μμ (save)
- 볡ꡬ κ°λ₯
- νμ€ν 리 μ μ§
- κ°μ¬ μΆμ
- λμ€ν¬ κ³΅κ° μ¦κ°
- 쿼리 볡μ‘λ μ¦κ°
λ€μ λ¨κ³
save
λ μ½λ μ μ₯ λ° μμ
findMany
μμ ν λ μ½λ μ‘°ννκΈ°
@transactional
νΈλμμ
μΌλ‘ μμ νκ² μμ νκΈ°
μΈλ ν€
μΈλ ν€ μ μ½μ‘°κ±΄ μ€μ