반응형
JPA 직접 @Query애노테이션을 사용해 원하는 쿼리를 직접 사용할 수 있다.
이 때 주의해야할 점은 from절에 db의 테이블명이 아닌 해당 테이블의 entity로 등록한 모델을 입력해주어야 한다.
문제상황
from절의 테이블명(channel)을 작성
다음과 같은 에러 발생
Caused by: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: channel is not mapped [select max(id) as id from channel] at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:138) ~[hibernate-core-5.3.10.Final.jar:5.3.10.Final] at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:181) ~[hibernate-core-5.3.10.Final.jar:5.3.10.Final] at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:188) ~[hibernate-core-5.3.10.Final.jar:5.3.10.Final] at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:729) ~[hibernate-core-5.3.10.Final.jar:5.3.10.Final] at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:23) ~[hibernate-core-5.3.10.Final.jar:5.3.10.Final] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_151] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_151] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_151] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_151]
문제해결
entity로 등록한 Java class로 변경
반응형
'Programming > Java,Spring' 카테고리의 다른 글
[ Springboot / JPA ] JPA composite key 사용할 때 @IdClass, Serializable (2) | 2019.10.14 |
---|---|
[ Spring ehcache ] ehcache를 사용할 때 주의할점 (proxy...) (0) | 2019.10.04 |
[ Springboot ] 스프링부트 mysql연동시 time zone 이슈 (0) | 2019.08.11 |
[ Springboot ] 스프링부트 SolrServerException 발생 with actuator (0) | 2019.07.26 |
[ Springboot ] 스프링부트 기본 컨테이너 톰캣 제외시키기 (0) | 2019.07.25 |