영속성

    [JPA] 영속성 컨텍스트의 생명주기(feat.OSIV)

    [JPA] 영속성 컨텍스트의 생명주기(feat.OSIV)

    [문제 상황] 사용자 회원가입이 잘 되는지 확인하기 위해 다음과 같은 테스트 코드를 작성했다. "영속성 컨텍스트에 user 정보가 저장되어서 같은 영속성 컨텍스트에 있는 user와 newUser는 같은 객체가 된다"라고 생각했는데 테스트 케이스가 실패하였다. 확인해보니 user가 null로 나온다. ??? 그렇다면 왜 이 테스트 케이스는 실패하는가? 이를 위해 userService.save()의 코드를 살펴보았다. [분석] 먼저 내가 알고 있는 지식이 잘못된 것인지 확인하였다. [JPA의 객체 비교] 객체를 비교하는 방식에는 총 2가지가 있다. 1. 동일성 비교 (== 비교) 2. 동등성 비교 (equals()) JPA에서는 같은 트랜잭션일 때는 같은 객체임이 보장된다. 따라서 다음은 동일성 비교에서 t..