Server/JPA
-
[JPA] Fetch Join 할 때 MultipleBagFetchException 해결하는 법Server/JPA 2021. 11. 24. 14:53
Spring Data JPA에서 MultiBagFetchException 해결하기 이번 글에서는 JPA를 사용한지 얼마 안된 초보자 입장에서 겪은 어려움을 공유하고 어떻게 해결해나갔는지 공유하며 생각을 정리해보려 합니다. 위의 화면에 대한 API를 만들어야 하는 상황입니다. 위의 뷰에서는 내가 팔로우 하고 있는 사람이 작성한 게시글이 나타나야 합니다. View를 보면서 DB Table을 간단하게 같이 보겠습니다. 하나의 게시글 : 여러 장의 사진 (1 : N) 하나의 게시글 : 여러 개의 가게 평가 해시 태그 (1 : N) 하나의 게시글 : 같이 가게를 간 사람들의 닉네임 (1 : N) 위의 조건에 해당하는 데이터를 다 가져와야 하나의 Post(게시글)을 보여줄 수 있습니다. 즉, JOIN이 꽤 많이 들..
-
[Spring] Spring Data JPA에서 Auditing 사용하는 법Server/JPA 2021. 11. 9. 12:05
JPA AuditingEntityListener 알아보기 위의 코드는 제가 작성했던 코드인데요. 누군가 저에게 아래와 같이 물었습니다. LocalDateTime.now() 코드는 왜 작성한거야? 위의 질문을 듣고 아.. BaseEntity를 통해서 생성시간, 수정시간을 저장하기 위해서 만들었는데 now() 코드는 없어도 되려나? 라는 생각이 들었습니다. 지금 생각하면 당연히 없어도 될 코드인데 왜 저렇게 작성했나 싶지만.. 어쨋든 AuditingEntityListener가 어떻게 동작하는지 잘 모르고 사용하고 있는 거 같아서 이번 글에서는 JPA AuditingEntityListener를 어떻게 사용하고 어떤 원리로 동작하는 것인지 알아보겠습니다. JPA Auditing 이란? 언제 만들어졌는지, 언제 ..
-
[Spring] Spring Data JPA에서 Paging 간단하게 구현하는 법Server/JPA 2021. 11. 8. 20:44
Spring Data JPA에서 페이징 구현하는 법 이번 글에서는 Spring Data JPA에서 Paging을 구현하는 법에 대해서 알아보겠습니다. 저는 JPA에 대해서 이제 공부하는 단계라 페이징을 처음 구현해보는데요. 공부하기 전에도 JPA로 페이징을 구현하는게 어렵다 라는 말은 많이 듣기만 해봤는데 이번 기회에 한번 공부해보면서 정리를 해보겠습니다. (이번 글의 코드를 보고 싶다면 Github 에서 확인하실 수 있습니다.) 페이징은 위의 보이는 것처럼 한 화면에 다 보여줄 수 없기 때문에, 페이지를 나눠서 게시글을 보여주는 것을 말하는데요. 페이징을 구현하는 방법, 성능을 개선하는 방법 등등 정말 다양하고 복잡하지만 초급자의 마음으로 정리해보겠습니다. 이번 글에서 사용할 기술 Java 11 Spr..