JPA에서 영속상태와 영속 상태가 아닌 객체를 비교하는 방법은 ID값이 들어가 있느냐 아니냐로 나뉜다.
JPA의 save함수 내부에 isNew() 함수가 id가 있는지 없는지 구별한 후 isNew()가 true면 persist, 아니면 merge를 진행한다.
persist는 save로 넘어온 매개변수 객체 그대로 반환을하고, merge는 또 다른 새로운 객체를 만들어 뱉어낸다.
그러므로 Domain B = save(A); 에서 A와 B는 merge일 경우 다르고 persist일 경우 A와 B가 같다.
그러므로 일종의 규약으로, 모든 코드에서는 반환된 B의 객체를 사용하는 것으로 약속하면 비교적 편하다.