[Spring-Boot] JPA에서 update 쿼리 사용시, xxx is not mapped 에러 발생시 대처방법

이것 또한 이상한 에러다.

분명 아래처럼 User.java 를 잘 설정했다.

그리고 UserRepository.java 에서

위처럼 하는데 업데이트 쿼리에서 막힌다.

이게 뭔 에러랴.. 분명 테이블은 user가 맞는데..

그러다 인터넷을 뒤져보니 대소문자에 주의하란다. 스텍오버플로 글(http://stackoverflow.com/questions/8230309/jpa-mapping-querysyntaxexception-foobar-is-not-mapped) 을 보니 명쾌한 답변이 있다.

쿼리에서 테이블 명을 쓸 때에는 해당 테이블과 맵핑된 도메인의 클래스 명을 사용하라고.

무슨말인고 하니, 내 user테이블과 맵핑된 클래스(@Table(name="user") 와 맵핑된) 는 User.java 이고, 클래스 명은 User이다.

즉, 나는 update문을 쓸 때에 update user 가 아닌 update User 를 써야한다는 것이다. 

내참.. 별것도 아닌 것 같은데 한참을 헤맸다 정말.. 그래도 간만에 삽질하고 시원한 느낌을 받음 🙂

 

(참고로 JpaRepository를 상속 받으면 findByXX같은 것을 쓸 수 있더라.. 좋다.. 자세한건 Y2K 님 블로그 참조)

Translate »