본문 바로가기
📔개발자 일기 | | TIL

[20220504] 개발자 일기 & TIL

by 캔 2022. 5. 4.

JPA 프로젝트에서 Entity를 통해서 데이터를 받아오려고 했는데, 파라미터를 입력했지만, 제대로 된 데이터가 나오지 않아서 고심하고 있었다. 그러다가 입력한 값이 어떻게 출력되는지 보려고 쿼리를 변경했는데 입력한 값이 제일 처음에 입력한 값으로 계속 나오고 있었다. 뭐지 영속성 컨텍스트가 제거되지 않고 남아 있나 생각하면서 원인을 찾다 보니 Id로 넣었던 값을 변경하지 않고 고정시켜 놓았더니 조회하면서 id가 같으니 동일한 로우를 리턴하고 있던 것이었다. JPA에서 ID로 설정한 칼럼의 값이 영속성 컨텍스트의 ID 칼럼 값과 같으면 같은 로우로 보고 영속성 컨텍스트의 데이터를 가져온다. 이걸 생각 못하고 계속 여러 가지 변경해보는 고생을 한 하루였다. 그래도 원인을 찾았으니 오늘도 하나 배워서 좋은 경험이었다.

TIL

JPA에서 Entity를 사용할 때 equals() hashCode() 메서드를 오버라이드 해주는 것이 좋다고 한다. 왜냐면 엔티티가 생성되고 영속성 컨텍스트에 남아있다가 삭제되고 다시 생성된 동일한 데이터를 가진 객체는 값들은 같지만 hashCode가 달라 매번 새로운 객체가 생성된다고 한다.

 

https://www.baeldung.com/java-memory-leaks

 

Understanding Memory Leaks in Java | Baeldung

Learn what memory leaks are in Java, how to recognize them at runtime, what causes them, and strategies for preventing them.

www.baeldung.com

'📔개발자 일기 | | TIL' 카테고리의 다른 글

[20220509] 개발자 일기 & TIL  (0) 2022.05.09
[20220505] TIL  (0) 2022.05.05
[20220502] 개발자 일기 & TIL  (0) 2022.05.02
[20220429] 개발자 일기 & TIL  (0) 2022.04.29
[20220428] 개발자 일기 & TIL  (0) 2022.04.28