본문 바로가기
728x90

BackEnd/QueryDsl JPA2

QueryDsl에서 exists과 동일한 성능을 낼 수 있는 fetchOne 바로 전 글에서 유저가 모임을 생성할 때 해당 일에 00:00 ~ 23:00시 까지 유저의 일정을 불러오는 부분을 구현 했다면 이번에는 유저가 모임을 생성하려는 시간에 겹치는 일정이 있는지 없는지 체크해서 겹치는 시간이 있으면 생성을 막는 기능을 구현 하려 한다. 전에 만들었던 query를 사용해서 java에서 겹치는 시간이 있는지 없는지 체크를해도 되지만 따로 query를 만들어서 체크를 하기로 했다. 밑 query는 mysql에서 exists 사용 예제다. select exists ( select * from group_table where group_id = 2 ) 하지만 QueryDsl에서는 from절이 필수이기 때문에 저렇게 사용하지 못 한다. 그래서 exists와 동일한 성능을 낼 수 있는 q.. 2022. 9. 27.
QueryDsl에서 MySQL Function 사용하기 부트캠프에서 팀 프로젝트를 진행하면서 QueryDsl을 사용하게 되었다. 마지막 기능 구현 부분인 모임의 일정 기능 구현을 진행하다가 유저가 모임 일정을 생성하려는 경우 일 별로 유저가 모임을 참여했거나, 모임을 생성한 시간들을 데이터 베이스에서 가져와서 일정이 겹치는 경우 생성을 막아줘야하는 부분을 구현해야 할 것 같아서 QueryDsl에서 MySQL Function을 사용 해야 할 일이 생겨버렸다.. 처음에는 당연히 MySQL의 함수를 쓸 수 있을거 같아서 바로 쓴 결과는 실패였다. No data type for node: org.hibernate.hql.internal.ast.tree.MethodNode 위 내용으로 구글링을 한 결과 dialect를 extends한 CustomDialect를 만들어.. 2022. 9. 27.
728x90