setter1 JPA setter을 만들지 않아야 하는 이유 나는 JPA 엔티티를 만들면 항상 getter, setter을 만들었었다. 하지만 setter는 사용하지 않는 게 좋다고 한다. 이 글은 그 이유를 간단하게 기록해본 것이다. JPA에서 데이터 타입은 크게 값 타입과 엔티티 타입으로 나뉜다. 여기서 값 타입은 기본값 타입, 임베디드 타입, 컬렉션 값 타입 으로 나뉘고 기본값 타입은 자바 기본 타입(int, double), 래퍼 클래스(Integer), String 로 나뉜다. 엔티티를 구성할 때 값 타입으로 구성하는 경우가 많은데 각 값 타입은 다른 엔티티들과 공유를 하면 위험하다. 한 엔티티에서 다른 엔테티의 값을 변경하면 위험하기 때문이다. 일반적인 자바 기본 타입은 값을 대입하면 복제가 이뤄진다. 하지만 임베디드 타입같은 객체형식의 값타입은 값을 대.. 2021. 7. 22. 이전 1 다음