기존 작성한 쿼리
return queryFactory
.select(chatroomIdPath)
.from(chatroomUser)
.where(chatroomUser.chatroomId.eq(
JPAExpressions
.select(chatroomUser.chatroomId)
.from(chatroomUser)
.groupBy(chatroomUser.chatroomId)
.having(chatroomUser.userId.count().eq(2L))
).and(chatroomUser.userId.in(1L, 2L)))
.fetch();
Java
복사
그에 따라서 반영한 QueryDSL
QChatRoomUser chatRoomUser = QChatRoomUser.chatRoomUser;
ChatRoom chatRoom = queryFactory
.selectDistinct(chatRoomUser.chatRoom)
.from(chatRoomUser)
.where(chatRoomUser.chatRoom.id.eq(
JPAExpressions
.select(chatRoomUser.chatRoom.id)
.from(chatRoomUser)
.groupBy(chatRoomUser.chatRoom.id)
.having(chatRoomUser.user.id.count().eq(2L))
)
.and(chatRoomUser.user.id.in(userId, friendId))
)
.fetchOne();
Java
복사
동작이 안되는 상황
1 채팅방에 1,2,3의 유저가 들어가 있고,
2 채팅방에 1,2 유저,
3 채팅방에 1,3 유저가 들어가 있을 때
1,2 유저를 입력값으로 줬을 때 fetchOne 부분에서 하나의 결과가아닌 다수의 결과가 나온다는 에러를 뱉음 or null 값을 뱉음.