[SPRING] mysql : = 연산자를 만나면 Hibernate 예외가 발생한다.
SPRINGmysql : = 연산자를 만나면 Hibernate 예외가 발생한다.
다음 코드를 실행하면 예외가 발생합니다.
Exception: org.springframework.orm.hibernate3.HibernateQueryException:
Not all named parameters have been set
여기 내 코드가 있습니다 :
queryString = SET @quot=0,@latest=0,@comp='';
select B.* from (
select A.time,A.change,IF(@comp<>A.company,1,0) as LATEST,@comp:=A.company as company from (
select time,company,quote-@quot as `change`, @quot:=quote curr_quote
from stocks order by company,time) A
order by company,time desc) B where B.LATEST=1;
list = getHibernateTemplate().executeFind(new HibernateCallback(){
public Object doInHibernate(Session session)throws HibernateException,SQLException {
SQLQuery query = session.createSQLQuery(queryString);
query.setParameterList("list", custIds);
return query.list();
}
이 행동의 이유는 무엇입니까?
해결법
-
==============================
1.이해하기가 조금 어렵습니다. 정확하게 실행중인 쿼리는 무엇입니까? 네이티브 쿼리에서 콜론 문자를 사용해야하는 경우에는 "값 지정"연산자로 사용할 경우 콜론 발생을 모두 이스케이프 처리해야합니다. \ 귀하의 자바 문자열에서 쿼리와 함께, 그렇게 될 수 있습니다 :
이해하기가 조금 어렵습니다. 정확하게 실행중인 쿼리는 무엇입니까? 네이티브 쿼리에서 콜론 문자를 사용해야하는 경우에는 "값 지정"연산자로 사용할 경우 콜론 발생을 모두 이스케이프 처리해야합니다. \ 귀하의 자바 문자열에서 쿼리와 함께, 그렇게 될 수 있습니다 :
select B.* from ( select A.time,A.change,IF(@comp<>A.company,1,0) as LATEST,@comp\\:=A.company as company from ( select time,company,quote-@quot as `change`, @quot\\:=quote curr_quote from stocks order by company,time) A order by company,time desc) B where B.LATEST=1;
업데이트 : Hibernate 네이티브 쿼리에서 콜론을 빠져 나오기는 아직 불가능합니다. 오픈에 관한 문제가 있습니다. 즉, 명명 된 매개 변수가 아닌 Hibernate 기본 쿼리에서 콜론을 사용할 수 없다는 뜻입니다. 함수를 만들고 쿼리를 호출하는 대신 함수를 호출 할 수 있습니다.
-
==============================
2.명명 된 쿼리를 생성 한 다음 spring jpa 저장소 또는 최대 절전 모드에서 사용할 수 있습니다. 이 링크는 비슷한 문제에서 나를 도왔다.
명명 된 쿼리를 생성 한 다음 spring jpa 저장소 또는 최대 절전 모드에서 사용할 수 있습니다. 이 링크는 비슷한 문제에서 나를 도왔다.
from https://stackoverflow.com/questions/33146012/hibernate-exception-on-encountering-mysql-operator by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring jpa로 Hibernate MultiTenancy (0) | 2019.05.20 |
---|---|
[SPRING] @Transactional이 클래스 수준에있을 때 읽기 전용을 사용하는 방법 (0) | 2019.05.20 |
[SPRING] jqGrid를 사용하여 지연로드를 구현할 수 있습니까? (0) | 2019.05.20 |
[SPRING] Spring Cloud Dataflow Type 변환이 프로세서 구성 요소에서 작동하지 않습니까? (0) | 2019.05.20 |
[SPRING] '중첩 된'주석을위한 Spring AOP point cut (0) | 2019.05.20 |