JPA DirtyCheck ์ฝ๋ ๊ด๋ จ ์ง๋ฌธ์์ต๋๋ค.
์ถ๊ฐ ์ง๋ฌธ์ฌํญ์
๋๋ค!DefaultFlushEntityEventListener.class์์ dirtyCheck() AbstractEntityPersister.class findDirty() ์ฌ๊ธฐ์ int[] props = TypeHelper.findDirty(this.entityMetamodel.getProperties(), currentState, previousState, this.propertyColumnUpdateable, session); ์ฌ๊ธฐ๋ก ๋ค์ด์ค๋ ๊ฒ์ ํ์ธํ๋๋ฐ์, ๋ด๋ถ์ ์ผ๋ก ๋ ์ดํด ๋ณด๋, EntityEntryContext.class์ addEntityEntry()๋ฅผ ํตํด ๊ฐ์ฒด๊ฐ ์ค๋
์ทํ ๋๋ ๊ฒ์ผ๋ก ๋ณด์
๋๋ค. ๊ทธ๋ฌ๋ฉด, ๊ฒฐ๊ตญ ์์์ฑ ์ปจํ
์คํธ์์ ๋ค๋ค์ง ๊ฐ์ฒด์ ์ค๋
์ท ๊ฐ์ฒด๋ ๋ถ๋ฆฌ๋์ด์ผ ํ ๊ฒ ๊ฐ์๋ฐ, ๊ฒฐ๊ตญ Deep Copyํ์ฌ ์ค๋
์ท์ผ๋ก ์ ์ฅ๋๋ ๊ฒ์ธ์ง ๊ถ๊ธํฉ๋๋ค! ๊ฐ์ฌํฉ๋๋ค.