[JPA] 카테시안 곱 발견 후 해결 과정 (1)
·
Development/DB
최근 프로젝트를 진행하다가 오류가 발생하여 찾아보니 카테시안 곱 때문에 생긴 에러였다.카테시안 곱에 대해서 알아보고, 오류를 어떻게 해결했는지 작성해보려 한다. 카테시안 곱이란? 카테시안 곱이란 쉽게 말해 두 개의 테이블의 모든 행이 서로 짝지어지는 것을 말한다. JPA에서는 데이터베이스 쿼리 사용 시 테이블간의 조인이 잘못되어 발생하며, 예상보다 훨씬 많은 수의 결과 레코드를 생성한다. 문제 파악 org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags: [com.example.adhd_backend.entity.PlanItem.planItemContents, com.example.adhd_bac..
[MongoDB] Mongoose Transaction 사용하기
·
Development/DB
게시글, 리뷰에 좋아요 기능을 구현하다가 mongoose transaction이라는 것을 알게되어 사용했다.기억하고 다음에도 쓰기 위해 기록해본다. 참고 :https://velog.io/@moongq/mongoose-transaction 1. Mongoose Transactiontransaction은 복수개의 작업들이 모두 성공했을 경우 성공하게 되고, 하나라도 실패했을 경우 실패 처리한다.MongoDB에서는 mongoose session으로 트랜잭션 처리가 가능하다. 이때 몽고의 버전은 5.2.0 이상이어야한다. 2. Express.js 코드 좋아요 기능을 구현하기 위해 mongoose transaction을 사용해보자. LikeSchema.index({ userId: 1, postId: 1 }, {..
[Express+MongoDB] 검색 기능 구현 (MongoDB Atlas Search Index)
·
Development/DB
프롤로그 캡스톤 프로젝트에 쓸 검색 기능을 어떻게 구현할까 하다가 MongoDB Atlas에서 제공하는 Search Index를 사용하기로 했다. 완전한 단어 또는 문장을 검색하지 않아도 포함된 글자 만으로 결과가 나오도록 했다. 참고 : https://seoyun-is-connecting-the-dots.tistory.com/311 1. Index 생성하기우선 MongoDB에서 로그인하여 원하는 프로젝트를 선택하고 All Clusters에 들어간다. Atlas Search에 들어가면 Search Type이 두 가지가 있다. (무료 버전 클러스터. 유료 버전은 다를지 모르겠음..) ○ Atlas Search와 Vector Search의 차이점?Atlas Search텍스트 기반 검색 기능특정 단어가 포..