티스토리 뷰

* 개요

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());


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함