1. 문제 상황
Kotlin을 이용하여 Spring Boot 프로젝트를 진행하던 도중, MongoDB를 사용하는 상황이 있었습니다. MongoDB를 더 쉽게 사용하기 위하여 MongoRepository를 사용하였는데요.
1.1. 정상 동작하지 않던 소스코드
interface PurchaseMongoRepository : MongoRepository<PurchaseMongoDocument, String> {
fun findByUserIDAndPurchaseIDIn(
purchaseIDs: List<String>,
userID: String,
) : List<PurchaseMongoDocument>
}
1.2. 정상 동작 소스코드
interface PurchaseMongoRepository : MongoRepository<PurchaseMongoDocument, String> {
fun findByUserIDAndPurchaseIDIn(
userID: String,
purchaseIDs: List<String>,
) : List<PurchaseMongoDocument>
}
2. 해결책
위의 소스코드에서 변한 것은 findBy_A_And_B_In(B, A) 함수를 findBy_A_And_B_In(A, B) 순서로 변경한 것 뿐입니다. 나머지는 변경하지 않았는데요. 혹시 정상적으로 코드를 작성한 것 같은데 조회가 되지 않는다면 위와 같이 순서가 반대로 되어 있지 않은지 확인해보시는 것도 좋을 것 같습니다.