๐ป ๋ฐฑ์๋ ๊ฐ๋ฐ/JPA - Hibernate3 03. Soft Delete ๋ ํธํ๊ฒ ํ๊ธฐ ๋ค์ด๊ฐ๋ฉฐ DB๋ฅผ ๋ง๋ค๋ฉด์ ์ฐ๋ฆฌ๋ ์ญ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค. ๋ฐฉ์ ์ค๋ช Soft Delete `UPDATE table SET delete = 1 WHERE id = 2` ํํ๋ก ROW๊ฐ ์ญ์ ๋์ง ์๊ณ flag๋ฅผ ํตํ ์ ์ด ํ๋ ๋ฐฉ์ Hard Delete DELETE FROM table WHERE id = 2 ํํ๋ก ROW๊ฐ ์ค์ ๋ก ์ญ์ ๋๋ ๋ฐฉ์ `Hard Delete`๋ฅผ ํ๋ ๊ฒฝ์ฐ๋ ์์ง๋ง, `Soft Delete`๋ฅผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ ๋ง๋ค. ์ด๋ฐ ๊ฒฝ์ฐ์ JPA Entity Graph ์ ๊ฒฝ์ฐ๋ `Soft Delete`์ ๋ฐ์ดํฐ๊ฐ ๊ฐ์ด ๋ด๊ฒจ์ ์จ๋ค. `Application level์์ ํํฐ ํ๋ฉด ๋๋๊ฑฐ ์๋๋? ` ๋ผ๊ณ ์๊ฐ ํ ์ ์์ง๋ง, ์ธ๊ฐ์ด๊ธฐ ๋๋ฌธ์ ๋ก์ง์ ๊ตฌ๋ฉ์ด ๋ง์ด ์๊ธธ ์ ์.. 2021. 7. 15. 02. ๋น์ ์ @Transactional์ readOnly ์ต์ ์ ์ฐ๊ณ ์๋์? ์์ํ๋ฉฐ ์ค๋์ Spring์์ ๋ง๋ฒ์ ์ด๋ ธํ ์ด์ ์ด๋ผ๊ณ ๋ถ๋ฅด๋ @Transactional์ readOnly ์ต์ ์ ๋ํ์ฌ ์ด์ผ๊ธฐํด๋ณด๋ ค๊ณ ํ๋ค. ์ฅ? @Transactional์๋ readOnly๋ผ๋ ์ต์ ์ด ์๋๋ฐ? ์ฅ? @Transactional์๋ readOnly ์ต์ ์ด ์๋๋ฐ ์ด๊ฒ ๋ฌด์จ์ผ์ด์ฃ ? ์๋ ๊ฑธ๋ก ์ด์ผ๊ธฐ๋ฅผ ํ๋ ค๊ณ ํ๋ ๊ฑด๊ฐ? ์ฐ๋ฆฌ๋ ์ด๋ฒ readOnly ์ด์ผ๊ธฐ๋ฅผ ํ๊ธฐ ์ ์ @Transactional์ 2๊ฐ์ง ์๋ค๋ ๊ฒ์ ์ด์ผ๊ธฐํ๊ณ ๋์ด๊ฐ๋ ค๊ณ ํ๋ค. ์ด 2๊ฐ์ง๊ฐ ๊ถ๊ทน์ ์ผ๋ก ํ๋ ค๊ณ ํ๋ ์ผ์ ๋์ผํ๋ค. (์ค์ Spring AOP ์์์๋ javax ํจํค์ง์ ํธ๋์ ์ ๊ณผ Spring ํจํค์ง์ ํธ๋์ ์ ๋ ๋ชจ๋ ์ง์ํ๊ณ ์๋ค.) Spring ํจํค์ง๋ฅผ ํตํด ์ ๊ณต๋๋ ์ด๋ ธํ ์ด์ ์ด ๋ ๋ง์ ์ต์ ์ ์ ๊ณตํ๊ฒ ๋.. 2021. 2. 4. 01. ์์๋๋ฉด ์ธ๋ผ์๋ GeneratedValue ์ด์ผ๊ธฐ Part1 ์์ํ๋ฉฐ ์ฐ๋ฆฌ๋ Entity๋ฅผ ๋ง๋ค ๋ ์ฐ๋ฆฌ๋ PK (Primary Key)๋ฅผ ์ง์ ํ๋ค. ๊ทธ์ค์์๋ Primary Key๋ฅผ ์ ํํ ๋, ์ ๋ต์ ์ผ๋ก ์๊ฐํ์ ๋ ์์ฐจ ์ฆ๊ฐ ๊ฐ์ ํฌ๊ธฐํ ์๊ฐ ์๋ค. ๊ณผ์ฐ ๊ทธ๋ผ JPA์์๋ ์ด๋ฐ ๋์ฒด ํค๋ฅผ ์ด๋ป๊ฒ ์์ฑํ๊ณ , ์ด๋ค์์ผ๋ก ๋์ํ๋์ง์ ๋ํด ์์๋ณด๋๋ก ํ์. GeneratedValue๋? import javax.persistence.*; import java.io.Serializable; import java.time.LocalDateTime; @Table(name = "coupon") @Entity @Getter @Setter public class Coupon implements Serializable { private static final long seria.. 2020. 6. 4. ์ด์ 1 ๋ค์