///
Search
Duplicate
👀

코드 리뷰회

기존 작성한 쿼리

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 값을 뱉음.