Repository์์ ๊ฐ์ ๊ฐ์ ธ์ฌ๋, JPA์ ์ง์ IsDeletedFalse ์ด๋ฐ์์ผ๋ก ๋ถ์ฌ์ฃผ๊ฒ ๋๋ฉด ์ค์๊ฐ ๋ฐ์ํ ์ ์๋ ์ํ์ด ์กด์ฌํ๋ค. ๋ฐ๋ผ์ ์๋์ ๊ฐ์ด ์ง์ ์์ฑํ์ง ์๊ณ , ์กฐ๊ฑด๋ค์ ๋ถ์ฌ์ฃผ๋ ๋ฐฉ๋ฒ์ ๋น๊ตํด๋ณด์๋ค.
1. @SQLRestriction
@SQLRestriction("deleted_at IS NULL")
- SQL๋ ๋ฒจ ์กฐ๊ฑด
- Hibernate๊ฐ ์ค์ SQL์ ์์ฑํ ๋ ์ง์ ์กฐ๊ฑด์ ๋ถ์
- but, sql ์ ์ง์ ์ฝ์ ๋์ด DBMS ์์กด์ ์ผ ์ ์์
2. @Where
@Where(clause = "deleted_at IS NULL")
- HQL ๋ ๋ฒจ์์๋ง ์กฐ๊ฑด๋ถ์ฌ
- ํด๋น ์ํฐํฐ์ ๋ํ ๋ชจ๋ ์กฐํ ์ฟผ๋ฆฌ์ ์๋์ผ๋ก Where์ ์ถ๊ฐ
- ๋ ผ๋ฆฌ ์ญ์ ๊ฐ์ ๋จ์ ์กฐ๊ฑด ํํฐ์ ์ข์
- ํ๋ผ๋ฏธํฐ ๋ฐ์ธ๋ฉ์ด ๋ถ๊ฐํ๊ณ , ์กฐ๊ฑด์ด ๊ณ ์ ์ ์ด๋ผ๋ ๋จ์ ์ด ์์
3. @Filter
@FilterDef(name = "deletedFilter", parameters = @ParamDef(name = "isDeleted", type = "boolean"))
@Filter(name = "deletedFilter", condition = "is_deleted = :isDeleted")
์๋น์ค์์ ์ฌ์ฉ์์ ์์ :
session.enableFilter("deletedFilter").setParameter("isDeleted", false);
- ๊ฐ์ฅ ์ ์ฐํ๊ณ ๋์ ์ธ ํํฐ
- ์ํฐํฐ์ ํํฐ์ ์ธ + ์ธ์ ์์ ํ์ฑํ ํด์ผ ๋์
- ๋์ ์กฐ๊ฑด ์ ์ด์์๋ Filter์ฌ์ฉ (ex) ์ผ๋ฐ user์ ์กฐํ์๋ ๋ ผ๋ฆฌ ์ญ์ ๋์ง ์์ ๊ฒ๋ง ๋ณด์ฌ์ฃผ๊ณ , ๊ด๋ฆฌ์์๊ฒ๋ ๋ค ๋ณด์ฌ์ฃผ๋ ๊ฒฝ์ฐ ํํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ํธํจ
'๋ฐฑ์๋ > Spring boot' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Feign Client๋ฅผ ๊ฐ์ธ๋ Facade Service Class (0) | 2025.04.14 |
---|---|
Feign Client ํธ์ถ ์๋ต Dto์ ํ๋๋ช ์ด ๋ค๋ฅผ๋ (0) | 2025.04.14 |
Spring Boot์์ Bean ์๋ช ์ฃผ๊ธฐ์ ์ด๊ธฐํ ๋ฐ ์๋ฉธ ๊ณผ์ (0) | 2025.03.10 |
API Gateway ์ Kafka (0) | 2025.02.26 |
Spring Boot ๋ฉํฐ ๋ชจ๋ ํ๋ก์ ํธ ์ค๊ณ (0) | 2025.02.25 |