월 17,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결실전! Querydsl
QueryDsl만 이용 VS QueryDsl 과 JPA 기본 제공 api를 혼용
다이나믹한 쿼리가 필요한 부분에서만 QueryDSL를 이용하고, 그 외에는 JPA에서 제공되는 기본 api(save 등)를 이용하고 있습니다.그러다 아래와 같은 고민이 생겼습니다...Q. 향후 어떻게 변할지 모를 "확장성"과 "일관성"을 위해, 처음부터 모든 쿼리를 QueryDsl을 이용하는게 좋을까요...?그게 아니라면, 지금 처럼 JPA에서 제공되는 기본 api와 혼용하며 이용하다가 필요할 때마다, QueryDSL을 이용하여 다이나믹 쿼리를 생성하는게 맞을까요...
- 미해결실전! Querydsl
쿼리문 질문입니다.
4:58강의 쿼리문저의 쿼리문영한님은 왜 쿼리문이 2개가 나오나요?/*쿼리문*/쿼리문 총 2번이 찍히는데 환경이 다른 것 일까요,.,.
- 해결됨실전! Querydsl
querydsl 의존성문제
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. @queryprojection 어노테이션이 쿼리 디에스엘에 의존성에 대한 얘기를 해주셨는데요. 레포지토리에서 쓰는 쿼리디에스엘도 같은 의존성 문제가 있는거 아닌가요 ? 극단적인 예로 치명적인 버그로 쿼리디에스엘을 급히 밀어야 되는 문제라던가 다른걸로 대체를 해야 할때레포지토리에서 사용했던 쿼리펙토리도 모두 바꿔줘야 하는 부분이 아닌가 해서요.
- 해결됨실전! Querydsl
dto로 만들어 바로 조회
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 프로젝션을 보고 있던와중에 궁금증이 생겨서 질문남깁니다. dto로 반환해주고 싶은데 dto가 private final 일 경우 기본 생성자를 만들지 못하는데 이럴땐 final을 풀고 기본생성자를 사용해주는 방법으로 가는게 맞을까요 ? 다른방법이 있으면 추천 부탁드립니다
- 해결됨실전! Querydsl
세타조인 질문입니다.
@Test void theta_join() { em.persist(new Member("teamA")); em.persist(new Member("teamB")); em.persist(new Member("teamC")); List<Member> result = queryFactory .select(member) .from(member) .join(member.team, team) .where(member.username.eq(team.name)) .fetch(); System.out.println("result = " + result); // => result = [] assertThat(result).extracting("username").containsExactly("teamA","teamB"); }위와 같은 쿼리문의 결과는 빈 결과값이 나오는데 이유를 모르겠습니다. 바로 밑의 질문이랑 비슷한데 답변이 잘 이해가 되지 않아 질문을 올렸습니다.
- 미해결실전! Querydsl
강사님! 질문 하나만 할게요! select + from vs selectFrom
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]제목 그대로 select().from()이랑 selectFrom()이랑분명한 차이점이 뭘까요? 경우에 따라 둘 다 사용하시던데 어떤 부분에서 적절하게 골라서 사용해야 할까요?
- 미해결실전! Querydsl
프로퍼티 접근 방법과 setter
안녕하세요 궁금한 부분이 있어 질문 남깁니다 7:58~ 에서프로퍼티 접근은 setter 를 통해 값이 들어가므로@Data 애노테이션을 지우고 직접 getter, setter를 만들어주셨습니다. 저는 setter가 없으면 오류가 날 것이라 생각하여getter, setter를 생성하지 않고 테스트를 해보았는데 정상적으로 실행되더라고요. 오류가 나지 않는 게 맞는지, 그렇다면 이유가 무엇인지 궁금합니다 ㅠㅠ 아래는 실행한 코드입니다public class MemberDto { private String username; private int age; public MemberDto() { } }@Test public void findDtoBySetter() { List<MemberDto> result = queryFactory .select(Projections.bean(MemberDto.class, member.username, member.age)) .from(member) .fetch(); for (MemberDto memberDto : result) { System.out.println("memberDto = " + memberDto); } } +추가.......뒤늦게 MemberDto에 @ToString 을 달아 확인해보았습니다.오류는 나지 않았지만 안에 값은 없었네요 ㅎㅎㅎ.......
- 미해결실전! Querydsl
querydsl dto mapping & subquery 질문 남깁니다.
안녕하세요 열심히 수업듣고 따라하고있는 수강생입니다. 먼저 매번 답변주셔서 감사합니다. 질문으로는 dto mapping 에서 @queryprojection 으로 직접 조회를 해야하는 상황입니다. 글 : 채팅방 1 : N채팅방 : 채팅 1: N 일때 DTO 는 @Data public class QChatRoomDto { private QaType qaApart; private String qaContent; private String searchPlace; private String category; private Long chooseMemberIdx; // 채택 / 미채택 기준 private Long roomIdx; private Long otherMemberIdx; private String otherMemberNickname; private String otherMemberImgDto; private int qaCount; private String modifiedDate; private String recentlyMsg; private String recentlyMsgType; private Long notReadCount; @QueryProjection public QChatRoomDto(String qaContent, String searchPlace, String category, Long chooseMemberIdx, Long roomIdx, Long otherMemberIdx, String otherMemberNickname, String otherMemberImgDto, int qaCount, LocalDateTime modifiedDate, String recentlyMsg, String recentlyMsgType, Long notReadCount) { this.qaApart = QUESTION; this.qaContent = qaContent; this.searchPlace = searchPlace; this.category = category; this.chooseMemberIdx = chooseMemberIdx; this.roomIdx = roomIdx; this.otherMemberIdx = otherMemberIdx; this.otherMemberNickname = otherMemberNickname; this.otherMemberImgDto = otherMemberImgDto; this.qaCount = qaCount; this.modifiedDate = modifiedDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); this.recentlyMsg = recentlyMsg; this.recentlyMsgType = recentlyMsgType; this.notReadCount = notReadCount; } } querydsl public Page<QChatRoomDto> myQuestionChatRoomList(Member questionMember, List<Member> blockMembers, QaStatusType qaStatusType, Pageable pageable) { return applyPagination(pageable, contentQuery -> contentQuery .selectDistinct(new QQChatRoomDto( qa.content.as("qaContent"), qa.searchPlace.as("searchPlace"), qa.category.name.as("category"), qa.selectMember.idx.as("chooseMemberIdx"), chatRoom.idx.as("roomIdx"), chatRoom.aMember.idx.as("otherMemberIdx"), chatRoom.aMember.nickname.as("otherMemberNickname"), chatRoom.aMember.memberImg.as("otherMemberImgDto"), chatRoom.qMember.qaList.size().as("qaCount"), chatRoom.modifiedDate.as("modifiedDate"), ExpressionUtils.as( JPAExpressions.select(chat.content) .from(chat) .where(chat.chatRoom.eq(chatRoom), chat.idx.eq( JPAExpressions.select(chat.idx.max()) .from(chat)) ), "recentlyMsg") , ExpressionUtils.as( JPAExpressions.select(chat.chatType) .from(chat) .where(chat.chatRoom.eq(chatRoom), chat.idx.eq( JPAExpressions.select(chat.idx.max()) .from(chat)) ), "recentlyMsgType"), ExpressionUtils.as( JPAExpressions.select(chat.count()) .from(chat) .where(chat.chatRoom.eq(chatRoom), chat.member.ne(questionMember), chat.readMsg.isFalse()), "notReadCount") ) ) .from(chatRoom) .join(chatRoom.qa, qa) .join(chatRoom.aMember, member) .where(chatRoom.qMember.eq(questionMember), isQaSelectMember(questionMember, qaStatusType), blockAMembersNotIn(blockMembers), chatRoom.idx.notIn( JPAExpressions.select(chatRoom.idx) .from(chatRoom) .where(chatRoom.isLeave.contains("_" + questionMember.getIdx() + "_"))), member.phoneNum.isNotNull() ) .orderBy(chatRoom.modifiedDate.desc())); }이렇게 작업을 했습니다. 매우 이상한 쿼리이겠지만 저한텐 이게 최선이었습니다 ㅠ여기서 궁금한점은 채팅룸 리스트를 뽑아야 하는데 recentlyMsg, recentlyMsgType채팅 리스트의 최근 데이터를 가지고 오고싶었으나 subQuery에서 limit 1 이 먹히지 않아 저런 괴랄한? 쿼리를 만들어 작동은 되게 만들었습니다. 해서 dto mapping 할때 컬렉션 리스트를 뽑는 다른 방법이 있는지 궁금합니다. chatRoom.chatlist 를 반환하여 queryprojection에서 가공하려 했지만 에러가 뜨면서 chatList는 반환이 안되어 질문글 남깁니다. 감사합니다.
- 미해결실전! Querydsl
count query 질문입니다
[질문 내용]아래처럼 List<MemberTeamDto> 를 쿼리해올때, 최적화를 위해 count query 를 따로 작성하셨는데, 왜 result.size() 로 바로 total count 값을 가져오면 안되는건지 궁금합니다! 이유가 무엇인가요?List<MemberTeamDto> result = queryFactory .select(new QMemberTeamDto( member.id.as("memberId"), member.username, member.age, team.id.as("teamId"), team.name.as("teamName"))) .from(member) .leftJoin(member.team, team) .where( usernameEq(condition.getUsername()), teamNameEq(condition.getTeamName()), ageGoe(condition.getAgeGoe()), ageLoe(condition.getAgeLoe()) ) .offset(pageable.getOffset()) .limit(pageable.getPageSize()) .fetch();
- 미해결실전! Querydsl
em.flush(),clear() 대신 @Modifying 어노테이션을 붙여도 되나요?
1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@Modifying 을 어노테이션으로 단다면, em.flush(),clear() 코드없이 동일한 동작을 수행하게 되나요?스프링 데이터 JPA에서는 Repository위에 달았는데요. 뒷 강의에서 Spring data JPA와 QueryDSL을 병행해서 사용하기 위해 custom Repository를 만든다고 배웠습니다. 이 custom Repository의 함수에 @Modifying을 달아도 동일하게 동작하는지 궁금합니다. 정리하자면 QueryDSL에서도 @Modifying이 적용되는지 궁금합니다.
- 미해결실전! Querydsl
정적쿼리와 동적쿼리의 개념의 차이점이 궁금합니다.
Querydsl 기술은 복잡한 쿼리를 작성할 때나 동적쿼리를 쉽게 작성할 때 큰 강점을 가진 것으로 알고 있습니다. 그런데 정적쿼리와 동적쿼리의 개념에 대한 차이점이 잘 와 닿지가 않아 질문을 드립니다.정적쿼리에 파라미터를 주고 파라미터에 따라 쿼리를 한 결과가 달라지는 것은 왜 정적쿼리인 것인지 조금 혼란스러워서요.정적쿼리와 동적쿼리를 확실히 구분하는 기준(?) 같은 것이 있는지 궁금합니다. 여기서부터는 제 생각입니다!혹시 정적쿼리에 파라미터를 넣어서 조회하는 것은 파라미터를 넣지 않으면 아예 SQL이 실행이 되지 않는 반면에 동적쿼리를 수업에서 예시를 들어서 설명하신 것처럼 이름은 들어가고 나이는 들어가지 않아도 쿼리가 실행은 되는 그런 차이일까요?
- 미해결실전! Querydsl
DTO를 바로 조회와 관련하여 질문이 있습니다.
QueryDsl을 사용하여 DTO를 바로 조회하는 것이 정말 쉽다는 것을 배우고 충격을 받은 사람입니다 'ㅅ'보통 컨트롤러에서 엔티티를 바로 리턴해주지 않기 위하여 엔티티를 조회하고 DTO로 다시 변환해주는 과정을 거치는데요. QueryDsl을 사용해서 바로 DTO를 조회하면 이런 과정 자체가 필요가 없어지는건가요?
- 미해결실전! Querydsl
DTO 안에 DTO
안녕하세요.추가로 개인적으로 공부를 하다가 궁금한 점이 생겨서 질문드립니다!Projections 사용 시에 DTO 의 생성자 방식으로 사용하였는데,혹시 DTO 안에 DTO 를 사용하는 방식은 가능할까요?? 이런 방식으로도 사용이 가능한 지 궁금해서 질문을 남겨봅니다! 감사합니다!
- 미해결실전! Querydsl
실무에서 Entity간 객체 탐색을 사용하는 경우가... 있을까요?
안녕하세요. 먼저 질 좋은 강의 덕분에 새로운 기술을 배우고 서비스에 적용 시키며 보람을 느끼고 있습니다. 감사합니다.다름이 아니라 현재 Spring JPA +QueryDSL 로 개발을 하던 도중 소스를 다시 훑어 보니 문득 의아한 생각이 들었습니다.제가 개발 해 놓은 소스를 보다 보니 Query 시 객체 탐색을 통한 구현이 거의 이루지지 않았더군요. 그래서 왜 이렇게 개발을 했나 하고 생각 해보니각 client(ex:브라우저) 의 요구사항에 맞는 데이터를 각 Entity에서 조회를 해야하나 사용하지 않은 모든 컬럼의 데이터를 조회 하는 것에 대해서는 비효율적일 수 있다. (테이블 내 컬럼이 많아질수록... 컬럼 내 타입 사이즈가 커질수록...)이에 Entity를 자체를 조회가 아닌 QueryDSL의 on 절 및 Projection을 통해 성능 향상을 이룰 수 있다.그러다 보니 기능 동작 관점에선 각 Entity간 연관관계를 통해 탐색을 거의 하지 않게 된다.결국 이런 결론에 도달하게 되었는데요. 이러다 보니 초기 강의를 들으면서 적용 했던 소스와는 달리 현재는 대부분 객체간의 연관관계를 설정하더라도 객체 탐색을 쓰지 않게 되고 있습니다.그 외에도 개인적인 생각이지만 객체 탐색을 통해 실무에서 주니어분들이 의도치 않은 성능 저하를 (n : 1 등) 일으킬 수 있어서 지양하는 대신, 정말 작은 규모의 테이블 하나만 조회 할 때 빼고는 사용을 안하는 방향으로 개발을 진행하고 있는데 이게 jpa의 기능을 절반 떼어버리는 듯한 느낌이 들어서 잘 이해한건지 불안불안 합니다.그래서 혹시 실무에서는 객체 탐색을 하는 경우가 있으신지 있다면 어느 케이스일 때 사용하는지 궁금합니다.그리고 객체 탐색 시 필요한 컬럼만 조회 하는 기능이... 있을까요?? 있다면 이런 질문을 드리지 않았을 거 같긴한데... 찾아 봐도 잘 안나오더군요ㅠ
- 미해결실전! Querydsl
결과값 DTO 반환
안녕하세요! 제가 따로 연습하면서 궁금한점이 생겨서 질문 드립니다!Projections 를 사용해서 DTO 반환시 강의에서는 필드값 하나하나이지만 연관관계 테이블 예를들어 Member-Team인 경우(양방향)멤버 ->팀 방향 멤버 조회시 DTO 에 팀은 잘 들어오는데 (양방향) 팀->멤버 조회시 DTO 필드값을 List<Member> 둬야 될것같아서(?) 했는데 잘안돼네요.. 방법을 잘 모르겠는데 혹시 이럴때는 어떤 방법을 써야할까요..?
- 미해결실전! Querydsl
OnToMany 관계의 복잡한 동적쿼리는 어떻게 해결하나요?
@Override public Page<?> findAllPostWithCategory3(Pageable pageable, List<Tech> techList, Category category, Place place) { JPAQuery<PostResponseDto> query = queryFactory. select(new QPostResponseDto(post)) .from(post) .leftJoin(post.account, account).fetchJoin() .where(checkCategory(category), checkPlace(place)) .leftJoin(post.techs, techs) .where(checkTechList(techList)) .offset(pageable.getOffset()) .limit(pageable.getPageSize()); // sorting for (Sort.Order o : pageable.getSort()) { PathBuilder pathBuilder = new PathBuilder(post.getType(), post.getMetadata()); query.orderBy(new OrderSpecifier(o.isAscending() ? Order.ASC : Order.DESC, pathBuilder.get(o.getProperty()))); } List<PostResponseDto> list = query.fetch(); JPAQuery<Long> countQuery = queryFactory .select(post.count()) .from(post) .where(checkTechList(techList)); return PageableExecutionUtils.getPage(list, pageable, countQuery::fetchOne); }//동적 관리 /*techList in query where*/ private BooleanExpression checkTechList (List < Tech > techList) { return techList == null ? null : techs.tech.in(techList); } /*category in query where*/ private BooleanExpression checkCategory (Category category){ return category == null ? null : post.category.eq(category); } /*place in query where*/ private BooleanExpression checkPlace (Place place){ return place == null ? null : post.place.eq(place); } Post를 기준으로 account는 manyToOne이고지금 문제가 되는것은 Tech입니다. Post와 oneToMany관계인데, 동적쿼리를 tech의 값으로 해야되서 문제가 발생합니다..페이지네이션을 유지해야하기에, 어떻게 짜야할지 모르겠습니다. 제발 도움이나 힌트 부탁드립니다
- 미해결실전! Querydsl
Where 다중 파라미터 사용, Null 처리관련 질문입니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요 :) 계묘년 새해 복 많이 받으시길 바랍니다. 강의 도중 allEq와 같은 메서드를 where()메서드에 넣게 되면 null 체크를 주의해야 한다고 하셔서 여러가지 Test를 돌려보았는데요 그 결과, return usernameEq(usernameCond).and(ageEq(ageCond));와 같이 체이닝을 하게되면 제일 첫 번째 메서드(여기서는 usernameEq(usernameCond))가 null일 경우 NullPointerException이 발생하는 것을 알았습니다.이걸 어떤 방식으로 처리해야할까요? 맨앞에 있는 것이 null인지 체크하고 그것을 제외한 조건들만 return 하는 방법도 생각했으나, 이 역시도 조건이 여러개라면 다시 첫번째 조건이 null인지 체크해야한다는 맹점이 있어서, 코드가 길어질것 같다는 생각이 듭니다.통상적으로 이런 경우 어떻게 대처하는 지 알려주시면 감사하겠습니다!다시 한 번 새해복 많이 받으세요!
- 미해결실전! Querydsl
QMember.member가 from에서는 오류가 안나는데 join에서는 오류가 발생합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 강사님 Querydsl4RepositorySupport를 만들어서 사용 중 member entity관련하여 이해하지 못할 오류가 발생하여서 질문드립니다.applyPagination(pageable, contentQuery -> contentQuery .select(Projections.constructor(MemberAccessLogPageDTO.class , memberAccessLog.id , memberAccessLog.loginYn , member.memberId , member.username , memberAccessLog.loginMethod , memberAccessLog.device , memberAccessLog.accessIp , memberAccessLog.accessTime )) .from(memberAccessLog) .leftJoin(member).fetchJoin() .on(memberAccessLog.memberId.eq(member.id)) .where(builder) ,countQuery -> countQuery .select(memberAccessLog.count()) .from(memberAccessLog) .where(builder) );querydsl구성을 위와같이 작성하여 기능을 구현하려고 했습니다.(Entity상으로는 memberAccessLog와 member는 join관계가 아니며, 외래키 설정또한 없습니다.)member를 from에서 단독 사용할 때는 문제가 없는데 위와 같이 join으로 사용하면 에러가 발생합니다.2023-01-04 17:13:57.241 ERROR 41936 --- [0.0-8009-exec-9] o.h.hql.internal.ast.ErrorTracker : line 3:19: unexpected token: Member2023-01-04 17:13:57.247 ERROR 41936 --- [0.0-8009-exec-9] o.h.hql.internal.ast.ErrorTracker : line 3:19: unexpected token: Memberantlr.NoViableAltException: unexpected token: Member at org.hibernate.hql.internal.antlr.HqlBaseParser.joinPath(HqlBaseParser.java:1925) ~[hibernate-core-5.6.11.Final.jar:5.6.11.Final] at org.hibernate.hql.internal.antlr.HqlBaseParser.fromJoin(HqlBaseParser.java:1800) ~[hibernate-core-5.6.11.Final.jar:5.6.11.Final] at org.hibernate.hql.internal.antlr.HqlBaseParser.fromClause(HqlBaseParser.java:1485) ~[hibernate-core-5.6.11.Final.jar:5.6.11.Final] at org.hibernate.hql.internal.antlr.HqlBaseParser.selectFrom(HqlBaseParser.java:1171) ~[hibernate-core-5.6.11.Final.jar:5.6.11.Final] at org.hibernate.hql.internal.antlr.HqlBaseParser.queryRule(HqlBaseParser.java:825) ~[hibernate-core-5.6.11.Final.jar:5.6.11.Final] at org.hibernate.hql.internal.antlr.HqlBaseParser.selectStatement(HqlBaseParser.java:336) ~[hibernate-core-5.6.11.Final.jar:5.6.11.Final] at org.hibernate.hql.internal.antlr.HqlBaseParser.statement(HqlBaseParser.java:200) ~[hibernate-core-5.6.11.Final.jar:5.6.11.Final] at org.hibernate.hql.internal.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:294) ~[hibernate-core-5.6.11.Final.jar:5.6.11.Final] at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:189) ~[hibernate-core-5.6.11.Final.jar:5.6.11.Final] at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:144) ~[hibernate-core-5.6.11.Final.jar:5.6.11.Final] at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:113) ~[hibernate-core-5.6.11.Final.jar:5.6.11.Final] at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:73) ~[hibernate-core-5.6.11.Final.jar:5.6.11.Final] at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:162) ~[hibernate-core-5.6.11.Final.jar:5.6.11.Final] at org.hibernate.internal.AbstractSharedSessionContract.getQueryPlan(AbstractSharedSessionContract.java:636) ~[hibernate-core-5.6.11.Final.jar:5.6.11.Final] at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:748) ~[hibernate-core-5.6.11.Final.jar:5.6.11.Final] at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:114) ~[hibernate-core-5.6.11.Final.jar:5.6.11.Final] at jdk.internal.reflect.GeneratedMethodAccessor143.invoke(Unknown Source) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:362) ~[spring-orm-5.3.23.jar:5.3.23] at jdk.proxy2/jdk.proxy2.$Proxy137.createQuery(Unknown Source) ~[na:na] at jdk.internal.reflect.GeneratedMethodAccessor143.invoke(Unknown Source) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:311) ~[spring-orm-5.3.23.jar:5.3.23] at jdk.proxy2/jdk.proxy2.$Proxy137.createQuery(Unknown Source) ~[na:na] at com.querydsl.jpa.impl.AbstractJPAQuery.createQuery(AbstractJPAQuery.java:132) ~[querydsl-jpa-5.0.0.jar:na] at com.querydsl.jpa.impl.AbstractJPAQuery.createQuery(AbstractJPAQuery.java:125) ~[querydsl-jpa-5.0.0.jar:na] at com.querydsl.jpa.impl.AbstractJPAQuery.fetch(AbstractJPAQuery.java:242) ~[querydsl-jpa-5.0.0.jar:na] at com.sungnam.re100.admin.common.repository.Querydsl4RepositorySupport.applyPagination(Querydsl4RepositorySupport.java:84) ~[main/:na] at com.sungnam.re100.admin.member.domain.repository.MemberAccessLogQuerydslRepository.findAccessLogBySearchInfo(MemberAccessLogQuerydslRepository.java:74) ~[main/:na] at com.sungnam.re100.admin.member.domain.repository.MemberAccessLogQuerydslRepository$$FastClassBySpringCGLIB$$ecabc3a2.invoke(<generated>) ~[main/:na] at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.3.23.jar:5.3.23] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793) ~[spring-aop-5.3.23.jar:5.3.23] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.3.23.jar:5.3.23] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.23.jar:5.3.23] at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ~[spring-tx-5.3.23.jar:5.3.23] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.23.jar:5.3.23] at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) ~[spring-aop-5.3.23.jar:5.3.23] at com.sungnam.re100.admin.member.domain.repository.MemberAccessLogQuerydslRepository$$EnhancerBySpringCGLIB$$667f1f19.findAccessLogBySearchInfo(<generated>) ~[main/:na] at com.sungnam.re100.admin.member.service.MemberService.findAccessLogBySearchInfo(MemberService.java:173) ~[main/:na] at com.sungnam.re100.admin.member.service.MemberService$$FastClassBySpringCGLIB$$c3876859.invoke(<generated>) ~[main/:na] at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.3.23.jar:5.3.23] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793) ~[spring-aop-5.3.23.jar:5.3.23] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.3.23.jar:5.3.23] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.23.jar:5.3.23] at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) ~[spring-tx-5.3.23.jar:5.3.23] at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.23.jar:5.3.23] at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.23.jar:5.3.23] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.23.jar:5.3.23] at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) ~[spring-aop-5.3.23.jar:5.3.23] at com.sungnam.re100.admin.member.service.MemberService$$EnhancerBySpringCGLIB$$d9703880.findAccessLogBySearchInfo(<generated>) ~[main/:na] at com.sungnam.re100.admin.member.rest.MemberRestController.memberAccessLogList(MemberRestController.java:131) ~[main/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.23.jar:5.3.23] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.23.jar:5.3.23] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.23.jar:5.3.23] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.23.jar:5.3.23] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.23.jar:5.3.23] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.23.jar:5.3.23] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1071) ~[spring-webmvc-5.3.23.jar:5.3.23] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964) ~[spring-webmvc-5.3.23.jar:5.3.23] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.23.jar:5.3.23] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.3.23.jar:5.3.23] at javax.servlet.http.HttpServlet.service(HttpServlet.java:655) ~[tomcat-embed-core-9.0.65.jar:4.0.FR] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.23.jar:5.3.23] at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) ~[tomcat-embed-core-9.0.65.jar:4.0.FR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at com.navercorp.lucy.security.xss.servletfilter.XssEscapeServletFilter.doFilter(XssEscapeServletFilter.java:36) ~[lucy-xss-servlet-2.0.1.jar:na] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.springframework.web.multipart.support.MultipartFilter.doFilterInternal(MultipartFilter.java:125) ~[spring-web-5.3.23.jar:5.3.23] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3] at com.sungnam.re100.admin.filter.AjaxSessionCheckFilter.doFilter(AjaxSessionCheckFilter.java:50) ~[main/:na] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) ~[spring-web-5.3.23.jar:5.3.23] at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) ~[spring-web-5.3.23.jar:5.3.23] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:433) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]2023-01-04 17:13:57.258 ERROR 41936 --- [0.0-8009-exec-9] c.s.r.a.exception.RestExceptionHandler : BadRequestExceptionorg.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: Member near line 3, column 19 [select memberAccessLog.id, memberAccessLog.loginYn, member1.memberId, member1.username, memberAccessLog.loginMethod, memberAccessLog.device, memberAccessLog.accessIp, memberAccessLog.accessTimefrom com.sungnam.re100.domain.member.MemberAccessLog memberAccessLog left join fetch Member member1 with memberAccessLog.memberId = member1.idorder by memberAccessLog.id desc]; nested exception is java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: Member near line 3, column 19 [select memberAccessLog.id, memberAccessLog.loginYn, member1.memberId, member1.username, memberAccessLog.loginMethod, memberAccessLog.device, memberAccessLog.accessIp, memberAccessLog.accessTimefrom com.sungnam.re100.domain.member.MemberAccessLog memberAccessLog left join fetch Member member1 with memberAccessLog.memberId = member1.idorder by memberAccessLog.id desc] at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:374) ~[spring-orm-5.3.23.jar:5.3.23] at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:235) ~[spring-orm-5.3.23.jar:5.3.23] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551) ~[spring-orm-5.3.23.jar:5.3.23] at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) ~[spring-tx-5.3.23.jar:5.3.23] at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242) ~[spring-tx-5.3.23.jar:5.3.23] at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152) ~[spring-tx-5.3.23.jar:5.3.23] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.23.jar:5.3.23] at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) ~[spring-aop-5.3.23.jar:5.3.23] at com.sungnam.re100.admin.member.domain.repository.MemberAccessLogQuerydslRepository$$EnhancerBySpringCGLIB$$667f1f19.findAccessLogBySearchInfo(<generated>) ~[main/:na] at com.sungnam.re100.admin.member.service.MemberService.findAccessLogBySearchInfo(MemberService.java:173) ~[main/:na] at com.sungnam.re100.admin.member.service.MemberService$$FastClassBySpringCGLIB$$c3876859.invoke(<generated>) ~[main/:na] at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.3.23.jar:5.3.23] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793) ~[spring-aop-5.3.23.jar:5.3.23] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.3.23.jar:5.3.23] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.23.jar:5.3.23] at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) ~[spring-tx-5.3.23.jar:5.3.23] at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.23.jar:5.3.23] at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.23.jar:5.3.23] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.23.jar:5.3.23] at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) ~[spring-aop-5.3.23.jar:5.3.23] at com.sungnam.re100.admin.member.service.MemberService$$EnhancerBySpringCGLIB$$d9703880.findAccessLogBySearchInfo(<generated>) ~[main/:na] at com.sungnam.re100.admin.member.rest.MemberRestController.memberAccessLogList(MemberRestController.java:131) ~[main/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.23.jar:5.3.23] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.23.jar:5.3.23] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.23.jar:5.3.23] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.23.jar:5.3.23] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.23.jar:5.3.23] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.23.jar:5.3.23] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1071) ~[spring-webmvc-5.3.23.jar:5.3.23] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964) ~[spring-webmvc-5.3.23.jar:5.3.23] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.23.jar:5.3.23] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.3.23.jar:5.3.23] at javax.servlet.http.HttpServlet.service(HttpServlet.java:655) ~[tomcat-embed-core-9.0.65.jar:4.0.FR] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.23.jar:5.3.23] at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) ~[tomcat-embed-core-9.0.65.jar:4.0.FR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at com.navercorp.lucy.security.xss.servletfilter.XssEscapeServletFilter.doFilter(XssEscapeServletFilter.java:36) ~[lucy-xss-servlet-2.0.1.jar:na] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.springframework.web.multipart.support.MultipartFilter.doFilterInternal(MultipartFilter.java:125) ~[spring-web-5.3.23.jar:5.3.23] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3] at com.sungnam.re100.admin.filter.AjaxSessionCheckFilter.doFilter(AjaxSessionCheckFilter.java:50) ~[main/:na] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) ~[spring-web-5.3.23.jar:5.3.23] at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) ~[spring-web-5.3.23.jar:5.3.23] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:433) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]Caused by: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: Member near line 3, column 19 [select memberAccessLog.id, memberAccessLog.loginYn, member1.memberId, member1.username, memberAccessLog.loginMethod, memberAccessLog.device, memberAccessLog.accessIp, memberAccessLog.accessTimefrom com.sungnam.re100.domain.member.MemberAccessLog memberAccessLog left join fetch Member member1 with memberAccessLog.memberId = member1.idorder by memberAccessLog.id desc] at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:138) ~[hibernate-core-5.6.11.Final.jar:5.6.11.Final] at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:181) ~[hibernate-core-5.6.11.Final.jar:5.6.11.Final] at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:188) ~[hibernate-core-5.6.11.Final.jar:5.6.11.Final] at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:757) ~[hibernate-core-5.6.11.Final.jar:5.6.11.Final] at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:114) ~[hibernate-core-5.6.11.Final.jar:5.6.11.Final] at jdk.internal.reflect.GeneratedMethodAccessor143.invoke(Unknown Source) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:362) ~[spring-orm-5.3.23.jar:5.3.23] at jdk.proxy2/jdk.proxy2.$Proxy137.createQuery(Unknown Source) ~[na:na] at jdk.internal.reflect.GeneratedMethodAccessor143.invoke(Unknown Source) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:311) ~[spring-orm-5.3.23.jar:5.3.23] at jdk.proxy2/jdk.proxy2.$Proxy137.createQuery(Unknown Source) ~[na:na] at com.querydsl.jpa.impl.AbstractJPAQuery.createQuery(AbstractJPAQuery.java:132) ~[querydsl-jpa-5.0.0.jar:na] at com.querydsl.jpa.impl.AbstractJPAQuery.createQuery(AbstractJPAQuery.java:125) ~[querydsl-jpa-5.0.0.jar:na] at com.querydsl.jpa.impl.AbstractJPAQuery.fetch(AbstractJPAQuery.java:242) ~[querydsl-jpa-5.0.0.jar:na] at com.sungnam.re100.admin.common.repository.Querydsl4RepositorySupport.applyPagination(Querydsl4RepositorySupport.java:84) ~[main/:na] at com.sungnam.re100.admin.member.domain.repository.MemberAccessLogQuerydslRepository.findAccessLogBySearchInfo(MemberAccessLogQuerydslRepository.java:74) ~[main/:na] at com.sungnam.re100.admin.member.domain.repository.MemberAccessLogQuerydslRepository$$FastClassBySpringCGLIB$$ecabc3a2.invoke(<generated>) ~[main/:na] at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.3.23.jar:5.3.23] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793) ~[spring-aop-5.3.23.jar:5.3.23] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.3.23.jar:5.3.23] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.23.jar:5.3.23] at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ~[spring-tx-5.3.23.jar:5.3.23] ... 103 common frames omittedCaused by: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: Member near line 3, column 19 [select memberAccessLog.id, memberAccessLog.loginYn, member1.memberId, member1.username, memberAccessLog.loginMethod, memberAccessLog.device, memberAccessLog.accessIp, memberAccessLog.accessTimefrom com.sungnam.re100.domain.member.MemberAccessLog memberAccessLog left join fetch Member member1 with memberAccessLog.memberId = member1.idorder by memberAccessLog.id desc] at org.hibernate.hql.internal.ast.QuerySyntaxException.convert(QuerySyntaxException.java:74) ~[hibernate-core-5.6.11.Final.jar:5.6.11.Final] at org.hibernate.hql.internal.ast.ErrorTracker.throwQueryException(ErrorTracker.java:93) ~[hibernate-core-5.6.11.Final.jar:5.6.11.Final] at org.hibernate.hql.internal.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:301) ~[hibernate-core-5.6.11.Final.jar:5.6.11.Final] at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:189) ~[hibernate-core-5.6.11.Final.jar:5.6.11.Final] at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:144) ~[hibernate-core-5.6.11.Final.jar:5.6.11.Final] at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:113) ~[hibernate-core-5.6.11.Final.jar:5.6.11.Final] at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:73) ~[hibernate-core-5.6.11.Final.jar:5.6.11.Final] at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:162) ~[hibernate-core-5.6.11.Final.jar:5.6.11.Final] at org.hibernate.internal.AbstractSharedSessionContract.getQueryPlan(AbstractSharedSessionContract.java:636) ~[hibernate-core-5.6.11.Final.jar:5.6.11.Final] at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:748) ~[hibernate-core-5.6.11.Final.jar:5.6.11.Final] ... 125 common frames omittedCaused by: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: Member near line 3, column 19 [select memberAccessLog.id, memberAccessLog.loginYn, member1.memberId, member1.username, memberAccessLog.loginMethod, memberAccessLog.device, memberAccessLog.accessIp, memberAccessLog.accessTimeCaused by: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: Member near line 3, column 19 [select memberAccessLog.id, memberAccessLog.loginYn, member1.memberId, member1.username, memberAccessLog.loginMethod, memberAccessLog.device, memberAccessLog.accessIp, memberAccessLog.accessTime 오류 로그는 위와 같습니다. 최대한 타고 들어가서 확인한다고 했는데 QueryTranslatorImpl의 doCompile에서 final HqlParser parser = parse( true );위의 라인에서 parse를 호출하는 부분까지만 타고 들어가서 확인했습니다...더 들어가도 간단한 소스 수정만으로는 힘들 것 같더군요. 혹시 QueryDSL이나 EntityManager, EntityPath, JpaEntityInformation 같은 걸 사용 할 때Join절에 Member를 쓰면 오류가 발생하는 기믹? 예약어? 같은 게 있을까요? Member entity를 다른 이름으로 바꾸면 문제없이 작동되고Member entity를 단독으로 from절에 사용할때는 아무런 문제가 없어서혹시 예약어 같은 개념으로 Member를 사용못한다던가 하는 이유가 있을까 싶어 문의드립니다.
- 미해결실전! Querydsl
h2 console 에 테이블이 보이질 않습니다.
application.yml spring: datasource: url: jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 username: sa password: driver-class-name: org.h2.Driver jpa: hibernate: ddl-auto: create properties: hibernate: # show_sql: true format_aql: true default_batch_fetch_size: 100 logging: level: org.hibernate.SQL: debug org.hibernate.type: trace build.gradlebuildscript { dependencies { classpath("gradle.plugin.com.ewerk.gradle.plugins:querydsl-plugin:1.0.10") } } plugins {id 'org.springframework.boot' version '2.4.1' id 'io.spring.dependency-management' version '1.0.10.RELEASE' id 'java' } apply plugin: 'io.spring.dependency-management' apply plugin: "com.ewerk.gradle.plugins.querydsl" group = 'jpabook' version = '1.8.1' sourceCompatibility = '11' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-devtools' implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.8.1' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'com.fasterxml.jackson.datatype:jackson-datatype-hibernate5' testImplementation 'org.projectlombok:lombok:1.18.24' testImplementation 'org.projectlombok:lombok:1.18.24' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.assertj:assertj-core:3.23.1' //JUnit4 추가 testImplementation("org.junit.vintage:junit-vintage-engine") { exclude group: "org.hamcrest", module: "hamcrest-core" } //querydsl 추가 implementation 'com.querydsl:querydsl-jpa' //querydsl 추가 implementation 'com.querydsl:querydsl-apt' } //querydsl 추가 //def querydslDir = 'src/main/generated' def querydslDir = "$buildDir/generated/querydsl" querydsl { library = "com.querydsl:querydsl-apt" jpa = true querydslSourcesDir = querydslDir } sourceSets { main { java { srcDirs = ['src/main/java', querydslDir] } } } compileQuerydsl{ options.annotationProcessorPath = configurations.querydsl } configurations { querydsl.extendsFrom compileClasspath } tasks.named('test') { useJUnitPlatform() } 로그입니다.2023-01-02 23:24:13.584 INFO 1432 --- [ restartedMain] jpabook.jpashop.JpashopApplication : Starting JpashopApplication using Java 11.0.15 on DESKTOP-I7K9HJ3 with PID 1432 (C:\Users\kom12\OneDrive\Desktop\IJ\jpashop1-practice\out\production\classes started by kom12 in C:\Users\kom12\OneDrive\Desktop\IJ\jpashop1-practice) 2023-01-02 23:24:13.588 INFO 1432 --- [ restartedMain] jpabook.jpashop.JpashopApplication : No active profile set, falling back to default profiles: default 2023-01-02 23:24:13.664 INFO 1432 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable 2023-01-02 23:24:13.664 INFO 1432 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' 2023-01-02 23:24:14.910 INFO 1432 --- [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. 2023-01-02 23:24:15.052 INFO 1432 --- [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 115 ms. Found 1 JPA repository interfaces. 2023-01-02 23:24:16.174 INFO 1432 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http) 2023-01-02 23:24:16.191 INFO 1432 --- [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2023-01-02 23:24:16.192 INFO 1432 --- [ restartedMain] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.41] 2023-01-02 23:24:16.321 INFO 1432 --- [ restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2023-01-02 23:24:16.321 INFO 1432 --- [ restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2656 ms 2023-01-02 23:24:16.476 INFO 1432 --- [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... 2023-01-02 23:24:16.728 INFO 1432 --- [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. 2023-01-02 23:24:16.740 INFO 1432 --- [ restartedMain] o.s.b.a.h2.H2ConsoleAutoConfiguration : H2 console available at '/h2-console'. Database available at 'jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08' 2023-01-02 23:24:16.919 INFO 1432 --- [ restartedMain] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] 2023-01-02 23:24:16.996 INFO 1432 --- [ restartedMain] org.hibernate.Version : HHH000412: Hibernate ORM core version 5.4.25.Final 2023-01-02 23:24:17.182 INFO 1432 --- [ restartedMain] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.1.2.Final} 2023-01-02 23:24:17.398 INFO 1432 --- [ restartedMain] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect 2023-01-02 23:24:18.411 INFO 1432 --- [ restartedMain] p6spy : #1672669458411 | took 1ms | statement | connection 3| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 drop table if exists category CASCADE drop table if exists category CASCADE ; 2023-01-02 23:24:18.411 INFO 1432 --- [ restartedMain] p6spy : #1672669458411 | took 0ms | statement | connection 3| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 drop table if exists category_item CASCADE drop table if exists category_item CASCADE ; 2023-01-02 23:24:18.411 INFO 1432 --- [ restartedMain] p6spy : #1672669458411 | took 0ms | statement | connection 3| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 drop table if exists delivery CASCADE drop table if exists delivery CASCADE ; 2023-01-02 23:24:18.411 INFO 1432 --- [ restartedMain] p6spy : #1672669458411 | took 0ms | statement | connection 3| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 drop table if exists item CASCADE drop table if exists item CASCADE ; 2023-01-02 23:24:18.412 INFO 1432 --- [ restartedMain] p6spy : #1672669458412 | took 0ms | statement | connection 3| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 drop table if exists member CASCADE drop table if exists member CASCADE ; 2023-01-02 23:24:18.412 INFO 1432 --- [ restartedMain] p6spy : #1672669458412 | took 0ms | statement | connection 3| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 drop table if exists order_item CASCADE drop table if exists order_item CASCADE ; 2023-01-02 23:24:18.412 INFO 1432 --- [ restartedMain] p6spy : #1672669458412 | took 0ms | statement | connection 3| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 drop table if exists orders CASCADE drop table if exists orders CASCADE ; 2023-01-02 23:24:18.412 INFO 1432 --- [ restartedMain] p6spy : #1672669458412 | took 0ms | statement | connection 3| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 drop sequence if exists hibernate_sequence drop sequence if exists hibernate_sequence; 2023-01-02 23:24:18.416 INFO 1432 --- [ restartedMain] p6spy : #1672669458416 | took 1ms | statement | connection 4| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 create sequence hibernate_sequence start with 1 increment by 1 create sequence hibernate_sequence start with 1 increment by 1; 2023-01-02 23:24:18.420 INFO 1432 --- [ restartedMain] p6spy : #1672669458420 | took 4ms | statement | connection 4| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 create table category (category_id bigint not null, name varchar(255), parent_id bigint, primary key (category_id)) create table category (category_id bigint not null, name varchar(255), parent_id bigint, primary key (category_id)); 2023-01-02 23:24:18.421 INFO 1432 --- [ restartedMain] p6spy : #1672669458421 | took 0ms | statement | connection 4| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 create table category_item (category_id bigint not null, item_id bigint not null) create table category_item (category_id bigint not null, item_id bigint not null); 2023-01-02 23:24:18.421 INFO 1432 --- [ restartedMain] p6spy : #1672669458421 | took 0ms | statement | connection 4| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 create table delivery (delivery_id bigint not null, city varchar(255), street varchar(255), zipcode varchar(255), status varchar(255), primary key (delivery_id)) create table delivery (delivery_id bigint not null, city varchar(255), street varchar(255), zipcode varchar(255), status varchar(255), primary key (delivery_id)); 2023-01-02 23:24:18.422 INFO 1432 --- [ restartedMain] p6spy : #1672669458422 | took 0ms | statement | connection 4| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 create table item (dtype varchar(31) not null, item_id bigint not null, name varchar(255), price integer not null, stock_quantity integer not null, artist varchar(255), etc varchar(255), author varchar(255), isbn varchar(255), actor varchar(255), director varchar(255), primary key (item_id)) create table item (dtype varchar(31) not null, item_id bigint not null, name varchar(255), price integer not null, stock_quantity integer not null, artist varchar(255), etc varchar(255), author varchar(255), isbn varchar(255), actor varchar(255), director varchar(255), primary key (item_id)); 2023-01-02 23:24:18.423 INFO 1432 --- [ restartedMain] p6spy : #1672669458423 | took 1ms | statement | connection 4| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 create table member (member_id bigint not null, city varchar(255), street varchar(255), zipcode varchar(255), name varchar(255), primary key (member_id)) create table member (member_id bigint not null, city varchar(255), street varchar(255), zipcode varchar(255), name varchar(255), primary key (member_id)); 2023-01-02 23:24:18.424 INFO 1432 --- [ restartedMain] p6spy : #1672669458424 | took 0ms | statement | connection 4| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 create table order_item (order_item_id bigint not null, count integer not null, order_price integer not null, item_id bigint, order_id bigint, primary key (order_item_id)) create table order_item (order_item_id bigint not null, count integer not null, order_price integer not null, item_id bigint, order_id bigint, primary key (order_item_id)); 2023-01-02 23:24:18.425 INFO 1432 --- [ restartedMain] p6spy : #1672669458425 | took 0ms | statement | connection 4| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 create table orders (order_id bigint not null, order_date timestamp, status varchar(255), delivery_id bigint, member_id bigint, primary key (order_id)) create table orders (order_id bigint not null, order_date timestamp, status varchar(255), delivery_id bigint, member_id bigint, primary key (order_id)); 2023-01-02 23:24:18.432 INFO 1432 --- [ restartedMain] p6spy : #1672669458432 | took 6ms | statement | connection 4| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 alter table category add constraint FK2y94svpmqttx80mshyny85wqr foreign key (parent_id) references category alter table category add constraint FK2y94svpmqttx80mshyny85wqr foreign key (parent_id) references category; 2023-01-02 23:24:18.433 INFO 1432 --- [ restartedMain] p6spy : #1672669458433 | took 0ms | statement | connection 4| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 alter table category_item add constraint FKu8b4lwqutcdq3363gf6mlujq foreign key (item_id) references item alter table category_item add constraint FKu8b4lwqutcdq3363gf6mlujq foreign key (item_id) references item; 2023-01-02 23:24:18.434 INFO 1432 --- [ restartedMain] p6spy : #1672669458434 | took 0ms | statement | connection 4| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 alter table category_item add constraint FKcq2n0opf5shyh84ex1fhukcbh foreign key (category_id) references category alter table category_item add constraint FKcq2n0opf5shyh84ex1fhukcbh foreign key (category_id) references category; 2023-01-02 23:24:18.435 INFO 1432 --- [ restartedMain] p6spy : #1672669458435 | took 0ms | statement | connection 4| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 alter table order_item add constraint FKija6hjjiit8dprnmvtvgdp6ru foreign key (item_id) references item alter table order_item add constraint FKija6hjjiit8dprnmvtvgdp6ru foreign key (item_id) references item; 2023-01-02 23:24:18.437 INFO 1432 --- [ restartedMain] p6spy : #1672669458437 | took 1ms | statement | connection 4| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 alter table order_item add constraint FKt4dc2r9nbvbujrljv3e23iibt foreign key (order_id) references orders alter table order_item add constraint FKt4dc2r9nbvbujrljv3e23iibt foreign key (order_id) references orders; 2023-01-02 23:24:18.438 INFO 1432 --- [ restartedMain] p6spy : #1672669458438 | took 0ms | statement | connection 4| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 alter table orders add constraint FKtkrur7wg4d8ax0pwgo0vmy20c foreign key (delivery_id) references delivery alter table orders add constraint FKtkrur7wg4d8ax0pwgo0vmy20c foreign key (delivery_id) references delivery; 2023-01-02 23:24:18.439 INFO 1432 --- [ restartedMain] p6spy : #1672669458439 | took 0ms | statement | connection 4| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 alter table orders add constraint FKpktxwhj3x9m4gth5ff6bkqgeb foreign key (member_id) references member alter table orders add constraint FKpktxwhj3x9m4gth5ff6bkqgeb foreign key (member_id) references member; 2023-01-02 23:24:18.442 INFO 1432 --- [ restartedMain] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] 2023-01-02 23:24:18.450 INFO 1432 --- [ restartedMain] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 2023-01-02 23:24:18.465 INFO 1432 --- [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729 2023-01-02 23:24:18.658 INFO 1432 --- [ restartedMain] p6spy : #1672669458658 | took 11ms | statement | connection 6| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 call next value for hibernate_sequence call next value for hibernate_sequence; 2023-01-02 23:24:18.695 INFO 1432 --- [ restartedMain] p6spy : #1672669458695 | took 0ms | statement | connection 6| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 call next value for hibernate_sequence call next value for hibernate_sequence; 2023-01-02 23:24:18.696 INFO 1432 --- [ restartedMain] p6spy : #1672669458696 | took 0ms | statement | connection 6| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 call next value for hibernate_sequence call next value for hibernate_sequence; 2023-01-02 23:24:18.700 INFO 1432 --- [ restartedMain] p6spy : #1672669458700 | took 0ms | statement | connection 6| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 call next value for hibernate_sequence call next value for hibernate_sequence; 2023-01-02 23:24:18.702 INFO 1432 --- [ restartedMain] p6spy : #1672669458702 | took 0ms | statement | connection 6| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 call next value for hibernate_sequence call next value for hibernate_sequence; 2023-01-02 23:24:18.705 INFO 1432 --- [ restartedMain] p6spy : #1672669458705 | took 0ms | statement | connection 6| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 call next value for hibernate_sequence call next value for hibernate_sequence; 2023-01-02 23:24:18.705 INFO 1432 --- [ restartedMain] p6spy : #1672669458705 | took 0ms | statement | connection 6| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 call next value for hibernate_sequence call next value for hibernate_sequence; 2023-01-02 23:24:18.736 INFO 1432 --- [ restartedMain] p6spy : #1672669458736 | took 0ms | statement | connection 6| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 insert into member (city, street, zipcode, name, member_id) values (?, ?, ?, ?, ?) insert into member (city, street, zipcode, name, member_id) values ('서울', '1', '1111', 'userA', 1); 2023-01-02 23:24:18.738 INFO 1432 --- [ restartedMain] p6spy : #1672669458738 | took 0ms | statement | connection 6| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 insert into item (name, price, stock_quantity, author, isbn, dtype, item_id) values (?, ?, ?, ?, ?, 'B', ?) insert into item (name, price, stock_quantity, author, isbn, dtype, item_id) values ('JPA1 BOOK', 10000, 100, NULL, NULL, 'B', 2); 2023-01-02 23:24:18.738 INFO 1432 --- [ restartedMain] p6spy : #1672669458738 | took 0ms | statement | connection 6| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 insert into item (name, price, stock_quantity, author, isbn, dtype, item_id) values (?, ?, ?, ?, ?, 'B', ?) insert into item (name, price, stock_quantity, author, isbn, dtype, item_id) values ('JPA2 BOOK', 20000, 100, NULL, NULL, 'B', 3); 2023-01-02 23:24:18.739 INFO 1432 --- [ restartedMain] p6spy : #1672669458739 | took 0ms | statement | connection 6| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 insert into delivery (city, street, zipcode, status, delivery_id) values (?, ?, ?, ?, ?) insert into delivery (city, street, zipcode, status, delivery_id) values ('서울', '1', '1111', NULL, 5); 2023-01-02 23:24:18.745 INFO 1432 --- [ restartedMain] p6spy : #1672669458745 | took 0ms | statement | connection 6| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 insert into orders (delivery_id, member_id, order_date, status, order_id) values (?, ?, ?, ?, ?) insert into orders (delivery_id, member_id, order_date, status, order_id) values (5, 1, '2023-01-02T23:24:18.700+0900', 'ORDER', 4); 2023-01-02 23:24:18.746 INFO 1432 --- [ restartedMain] p6spy : #1672669458746 | took 0ms | statement | connection 6| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 insert into order_item (count, item_id, order_id, order_price, order_item_id) values (?, ?, ?, ?, ?) insert into order_item (count, item_id, order_id, order_price, order_item_id) values (1, 2, 4, 10000, 6); 2023-01-02 23:24:18.746 INFO 1432 --- [ restartedMain] p6spy : #1672669458746 | took 0ms | statement | connection 6| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 insert into order_item (count, item_id, order_id, order_price, order_item_id) values (?, ?, ?, ?, ?) insert into order_item (count, item_id, order_id, order_price, order_item_id) values (2, 3, 4, 20000, 7); 2023-01-02 23:24:18.748 INFO 1432 --- [ restartedMain] p6spy : #1672669458748 | took 0ms | statement | connection 6| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 update item set name=?, price=?, stock_quantity=?, author=?, isbn=? where item_id=? update item set name='JPA1 BOOK', price=10000, stock_quantity=99, author=NULL, isbn=NULL where item_id=2; 2023-01-02 23:24:18.749 INFO 1432 --- [ restartedMain] p6spy : #1672669458749 | took 0ms | statement | connection 6| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 update item set name=?, price=?, stock_quantity=?, author=?, isbn=? where item_id=? update item set name='JPA2 BOOK', price=20000, stock_quantity=98, author=NULL, isbn=NULL where item_id=3; 2023-01-02 23:24:18.751 INFO 1432 --- [ restartedMain] p6spy : #1672669458751 | took 0ms | commit | connection 6| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 ; 2023-01-02 23:24:18.753 INFO 1432 --- [ restartedMain] p6spy : #1672669458753 | took 0ms | statement | connection 7| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 call next value for hibernate_sequence call next value for hibernate_sequence; 2023-01-02 23:24:18.753 INFO 1432 --- [ restartedMain] p6spy : #1672669458753 | took 0ms | statement | connection 7| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 call next value for hibernate_sequence call next value for hibernate_sequence; 2023-01-02 23:24:18.753 INFO 1432 --- [ restartedMain] p6spy : #1672669458753 | took 0ms | statement | connection 7| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 call next value for hibernate_sequence call next value for hibernate_sequence; 2023-01-02 23:24:18.753 INFO 1432 --- [ restartedMain] p6spy : #1672669458753 | took 0ms | statement | connection 7| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 call next value for hibernate_sequence call next value for hibernate_sequence; 2023-01-02 23:24:18.754 INFO 1432 --- [ restartedMain] p6spy : #1672669458754 | took 0ms | statement | connection 7| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 call next value for hibernate_sequence call next value for hibernate_sequence; 2023-01-02 23:24:18.754 INFO 1432 --- [ restartedMain] p6spy : #1672669458754 | took 0ms | statement | connection 7| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 call next value for hibernate_sequence call next value for hibernate_sequence; 2023-01-02 23:24:18.754 INFO 1432 --- [ restartedMain] p6spy : #1672669458754 | took 0ms | statement | connection 7| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 call next value for hibernate_sequence call next value for hibernate_sequence; 2023-01-02 23:24:18.755 INFO 1432 --- [ restartedMain] p6spy : #1672669458755 | took 0ms | statement | connection 7| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 insert into member (city, street, zipcode, name, member_id) values (?, ?, ?, ?, ?) insert into member (city, street, zipcode, name, member_id) values ('진주', '2', '2222', 'userB', 8); 2023-01-02 23:24:18.755 INFO 1432 --- [ restartedMain] p6spy : #1672669458755 | took 0ms | statement | connection 7| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 insert into item (name, price, stock_quantity, author, isbn, dtype, item_id) values (?, ?, ?, ?, ?, 'B', ?) insert into item (name, price, stock_quantity, author, isbn, dtype, item_id) values ('SPRING1 BOOK', 20000, 200, NULL, NULL, 'B', 9); 2023-01-02 23:24:18.756 INFO 1432 --- [ restartedMain] p6spy : #1672669458756 | took 0ms | statement | connection 7| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 insert into item (name, price, stock_quantity, author, isbn, dtype, item_id) values (?, ?, ?, ?, ?, 'B', ?) insert into item (name, price, stock_quantity, author, isbn, dtype, item_id) values ('SPRING2 BOOK', 40000, 300, NULL, NULL, 'B', 10); 2023-01-02 23:24:18.756 INFO 1432 --- [ restartedMain] p6spy : #1672669458756 | took 0ms | statement | connection 7| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 insert into delivery (city, street, zipcode, status, delivery_id) values (?, ?, ?, ?, ?) insert into delivery (city, street, zipcode, status, delivery_id) values ('진주', '2', '2222', NULL, 12); 2023-01-02 23:24:18.756 INFO 1432 --- [ restartedMain] p6spy : #1672669458756 | took 0ms | statement | connection 7| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 insert into orders (delivery_id, member_id, order_date, status, order_id) values (?, ?, ?, ?, ?) insert into orders (delivery_id, member_id, order_date, status, order_id) values (12, 8, '2023-01-02T23:24:18.753+0900', 'ORDER', 11); 2023-01-02 23:24:18.757 INFO 1432 --- [ restartedMain] p6spy : #1672669458757 | took 0ms | statement | connection 7| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 insert into order_item (count, item_id, order_id, order_price, order_item_id) values (?, ?, ?, ?, ?) insert into order_item (count, item_id, order_id, order_price, order_item_id) values (3, 9, 11, 20000, 13); 2023-01-02 23:24:18.757 INFO 1432 --- [ restartedMain] p6spy : #1672669458757 | took 0ms | statement | connection 7| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 insert into order_item (count, item_id, order_id, order_price, order_item_id) values (?, ?, ?, ?, ?) insert into order_item (count, item_id, order_id, order_price, order_item_id) values (4, 10, 11, 40000, 14); 2023-01-02 23:24:18.757 INFO 1432 --- [ restartedMain] p6spy : #1672669458757 | took 0ms | statement | connection 7| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 update item set name=?, price=?, stock_quantity=?, author=?, isbn=? where item_id=? update item set name='SPRING1 BOOK', price=20000, stock_quantity=197, author=NULL, isbn=NULL where item_id=9; 2023-01-02 23:24:18.758 INFO 1432 --- [ restartedMain] p6spy : #1672669458758 | took 0ms | statement | connection 7| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 update item set name=?, price=?, stock_quantity=?, author=?, isbn=? where item_id=? update item set name='SPRING2 BOOK', price=40000, stock_quantity=296, author=NULL, isbn=NULL where item_id=10; 2023-01-02 23:24:18.758 INFO 1432 --- [ restartedMain] p6spy : #1672669458758 | took 0ms | commit | connection 7| url jdbc:h2:mem:6f8c6a84-cb23-479e-9692-b04021f75d08 ; 2023-01-02 23:24:19.178 WARN 1432 --- [ restartedMain] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning 2023-01-02 23:24:19.291 INFO 1432 --- [ restartedMain] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor' 2023-01-02 23:24:19.388 INFO 1432 --- [ restartedMain] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page: class path resource [static/index.html] 2023-01-02 23:24:19.623 INFO 1432 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' 2023-01-02 23:24:19.631 INFO 1432 --- [ restartedMain] jpabook.jpashop.JpashopApplication : Started JpashopApplication in 6.631 seconds (JVM running for 7.385) 잘되던 h2 데이터베이스가 어느순간부터 테이블이 보이질 않습니다.. ㅠㅠ모든 방법을 찾아봤는데 해결이 안되어 질문드립니다
- 미해결실전! Querydsl
sqlFunction 대체문?
@Test public void sqlFunction() throws Exception{ String result = queryFactory .select(Expressions.stringTemplate("function('replace', {0}, {1}, {2})", member2.username, "member", "M")) .from(member2) .fetchFirst(); System.out.println("result = " + result); } @Test public void sqlFunctionAlternate() throws Exception{ queryFactory .update(member2) .set(member2.username,replace("member","member","M")) .execute(); List<Member2> result = queryFactory .selectFrom(member2) .fetch(); System.out.println("result = " + result); }위 예제를 아래처럼 만들어봤는데 모든 엔티티들의 username=M 으로 나옵니다. 어떻게 하면 sqlFunction 사용하지않고 같은 결과를 만들수 있을까요>