엔티티에 필드 하나만 변경해도 API 스펙이 바뀌게
타임리프로 서버사이드에서 바로 사용하는 경우에는 상관은 없음 (그래도 DTO 를 사용하는 것이 깔끔한 구조)
JPA에는 준영속 엔티티(이미 등록이 되었던)를 수정하는 방법이 2가지 존재한다.
변경감지
영속된 객체만 사용할 수 있는 기능
준영속 엔티티를 em.find 를 통해 가져온 뒤 영속시키고 이후 수정한다
병합
DB에서 해당 엔티티를 가져와 영속시키고, 모든 필드의 값을 해당 준영속 엔티티의 필드 값으로 교체한다
엔티티를 전부 바꾸는 경우에만 사용하는 것이 좋고, 위 방법과 큰 차이가 없으므로 변경감지를 통해 수정하는 것을 권장한다 (부분적인 수정을 병합으로 처리하면 에러가 발생할 확률이 높음)
트랜잭션이 있는 서비스 계층에서 엔티티를 다루는 것이 JPA를 활용하기 좋음
다루는 값이 많아 파라미터로 넘기기 어려운 경우 DTO 를 사용하자.