목록JPA (3)
주뇽's 저장소
최근에 Spring Boot와 JPA를 사용하여 프로젝트를 진행하던 중, 유저의 총 좋아요 개수를 조회하는 과정에서 데이터 불일치 문제가 발생했다. 이 글에서는 해당 문제의 원인과 해결 방법에 대해 자세히 설명한다. 문제 상황:UserAccount 엔티티와 Post 엔티티가 일대다 관계로 매핑되어 있다.UserAccountRepository에서 @EntityGraph 어노테이션을 사용하여 posts 연관 관계를 함께 로드하는 findWithPostsByNickname 메서드를 정의했다.유저의 총 좋아요 개수를 조회할 때, findWithPostsByNickname 메서드를 사용하여 유저 정보와 게시글 목록을 함께 조회한다.로그를 확인해보니 이전에 조회한 유저의 닉네임이 계속 출력되는 문제가 발생했다.문제..
H2 인메모리 데이터베이스는 서버 재시작시 정보가 휘발되므로 MySQL로 데이터베이스 변경 1. Docker를 사용해 MySQL 실행하기 docker run --detach --env MYSQL_ROOT_PASSWORD=dummypassword --env MYSQL_USER=todos-user --env MYSQL_PASSWORD=dummytodos --env MYSQL_DATABASE=todos --name mysql --publish 3306:3306 mysql:8-oracle docker run \ # Docker 컨테이너를 실행하는 기본 명령어 --detach \ # 컨테이너를 백그라운드에서 실행 (대화형 모드가 아님) --env MYSQL_ROOT_PASSWORD=dummypassword \ #..
JDBC와 Spring JDBC를 이용한 코드 비교 - JDBC(Delete) public void deleteTodo(int id){ PrepareStatement st = null; try{ st = db.conn.prepareStatement("delete from todo where id=?"); st.setInt(1, id); st.execute(); } catch (SQLException e){ logger.fatal("Query Failed :, e"); } finaaly { if (st != null){ try{st.close();} catch (SQLException e){} } } } - Spring JDBC(Delete) public void deleteTodo(int id){ jdb..