Kotlin ์์ JPA Entity ์์ฑ์ ์ง๋ฌธ
์ ๋ ๋น์ทํ ์ํฉ์ธ๋ฐ์ ใ
ใ
..๊ฐ์ธ์ ์ผ๋ก ์๊ฒฌ์ ๋จ๊ฒจ๋๋ฆฌ์๋ฉด๋ฐฉ๋ฒ1. ์๋ฐ๋ ๊ฐ์ฅ ๋น์ทํ๊ฒ, ํ๋๋ฅผ ๋ชจ๋ private ์ผ๋ก ์์ฑํ๊ณ getter ๋ ๋กฌ๋ณต ๋์ ์ง์ ์ ์ธ.-> ์ด๊ฒ์ ์ฌ์ค์ JVM ํ๋์ฒ๋ผ ์ ์ธํ๋ ๋ฐฉ์์ธ๋ฐ ์ฝํ๋ฆฐ์ค๋ฝ์ง์์์ ๋์ด๊ฐ๋ฉด ๋์ง ์์๊น ์๊ฐํฉ๋๋ค. ๋ฐฉ๋ฒ2. getter ๋ฅผ ์ข ๋ ์ฝํ๋ฆฐ์ค๋ฝ๊ฒ ์ฌ์ฉํ๊ธฐ ์ํด ๋ด๋ถ ํ๋๋ฅผ _๋ฅผ ๋ถ์ฌ์ ์ ์ธ -> ์ด๋ฐฉ์๋ 1๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ด์ ์์ ๋์ด๊ฐ๋ฉด ์ข์ง ์์๊น ์๊ฐํฉ๋๋ค.๋ฐฉ๋ฒ3. protected set ์ฌ์ฉ-> ์ด๋ ๊ฒ ์ธํฐ์ ๋ํ ์ ๊ทผ์ ์ด์๋ง ๋๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ฐฉ๋ฒ4(?). ์ ๋ถ public val ๋ก ์ ์ธํ๊ณ , ๋ณ๊ฒฝ์ ์๋ก์ด ๊ฐ์ฒด ์์ฑ-> ์ด๋ฐฉ์์.. ๋๋ฉ์ธ ๋ชจ๋ธ์ ๋ค๋ฃจ๋๋ฐ ์์ด์ ๋ง๋์ง๋ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋๋ฉ์ธ ์ํฐํฐ๊ฐ ๋ง์น ๋ฐ์ดํฐ์ฒ๋ผ ๋ค๋ค์ง๋ ๊ฒ ๊ฐ์์ ์กฐ๊ธ ๋ฐฉ์์ ์ฐจ์ด๊ฐ ์๋ค์. ์ด๋ฐฉ์์ ์ํฐํฐ๋ณด๋ค๋ VO (Embeddable) ์ ์ข ๋ ์ ํฉํ ๋ฐฉ์์ด ์๋๊ฐ ์ถ๋ค์. ์ด๋ฏธ data class๊ฐ ์๊ธฐ๋ ํ๊ณ ์.์ ๋ ์๋ ๋ธ๋ก๊ทธ๋ฅผ ๋ง์ด ์ฐธ๊ณ ํด์ ์ํฐํฐ๋ฅผ ๋ง๋๋ ํธ์
๋๋ค. ๊ณต์ ๋๋ ค์.https://veluxer62.github.io/explanation/kotlin-jpa-entity/(์ ๋ ํ ๋น๋๊ป์ ๋๋ ์ด๊ธ์ ๋ณด๊ณ ๊ณ์๋ ์ฌ๋ฌ ์ฝํ๋ฆฐ ์ ์ ๋ถ๊ป์ ์ด๋ป๊ฒ ์ํฐํฐ๋ฅผ ์์ฑํ์๋์ง ๊ถ๊ธํฉ๋๋ค.)