티스토리 뷰
* 개요
SQLQuery q = ...
q.setParameter(enum값) 코드가 있었음
결과가 안 나오는 문제.
* 원인
- mysql 에 보내진 쿼리를 확인해 보니 다음과 같았음
( 참고 : mysql 쿼리 보는 법
http://dogcowking.tistory.com/246)
2018-10-24T10:09:14.815899Z 60 Query /* dynamic native SQL query */ select .... 중략 .....
where mType = x'ACED00057E72002B636F6D2E6369646F672E636F6E6372657465696E666F2E6D6F64656C2E436953656374696F6E2454797065
00000000000000001200007872000E6A6176612E6C616E672E456E756D00000000000000001200007870740003636970'
mType 이 @Enumerated 선언된 속성인데 이런식으로 표현됨
- 해당 메서드는 HQL 사용이 아니라, SQLQuery 이용하고 있었기 때문에
q.setParameter("mType", mType);
형태로 호출하면 잘못된 값이 들어가게 됨
* 해결
SQLQuery 에는 속성 그대로 사용 못하고, SQL 에 들어갈 내용으로 값을 넣어줘야 함.
q.setParameter("mType", mType.toString());
'SW개발 > Hibernate' 카테고리의 다른 글
...For Windows-based platforms, see Microsoft Knowledge Base Article 196271 (Q196271). (0) | 2019.01.25 |
---|---|
ArrayStoreException (0) | 2018.11.30 |
내부 클래스 사용 / Inner class (0) | 2018.10.16 |
You have an error in your SQL syntax; check the manual that corresponds to your MySQL serv er version for the right syntax to use near .... (0) | 2018.07.16 |
@ElementCollection 지정된 개체, 저장 후 기존 데이터 사라지는 현상 (0) | 2018.07.11 |