@Entity 클래스에는 @Setter 를 넣지 않습니다. 대신 별도의 set용 함수를 만들어서 set 을 호출하는 부분이 어디인지 확인 및 제어를 해야 합니다.
그래야 값이 마구마구 변경되는걸 막을 수 있고 디버깅시 해당 set 함수를 기준으로 찾으면 되기에 편합니다. 클래스에는 @Transactional(readOnly = true) 을 적어주고 write 가 필요한 함수에서만 @Transactional 을 적어줍니다. read 만 하는 할 경우 readOnly 를 사용하면 약간의 성능 향상이 될 수 있기 때문입니다.
클래스와 함수에 @Transactional 이 모두 들어가 있으면 함수에 있는게 우선순위가 높게 동작하므로 위와 같이 적는게 가능합니다. @GeneratedValue 를 사용합니다.
"pk 변경할 일이 생겨서 일주일 정도 작업해야 합니다." 이런걸 1년에 한번 은 듣는것 같습니다.
절대 변경될 일 없을것 같으나, 우린 이미 그건 그저 희망사항일 뿐이라는걸 압니다. ...
#
DTO
#
entity는
#
boot
#
jpa
#
queryDSL
#
spring
#
tips
#
스프링
#
팁
원문 링크 : spring boot JPA 개발팁