JavaScript/Spring
[Java/Spring] Spring MongoDB 연동 및 데이터 읽기- 언더바(_) 문제 repository(DAO)
Alkaloid
2022. 11. 18. 17:05
반응형
데이터하나 읽는데 엄청난 삽질을 하게 되었습니다.
시도.
DAO에서 findBy를 이용하여 필드에 해당하는 값을 가져오려고 시도를 하였습니다.
User findBy~(String 필드명);
구조로 MongoDB에서 필드명은 user_id 였습니다.
즉. user_id가 일치하는 값을 몽고디비에서 가져오는것이 목표.
오류.
필드명을 찾을수가 없다.
해결.
findBy는 _를 사용하지 못하게 되어있습니다.
언더바(_)는 예약어로 사용되고 있기 때문에 읽지를 못합니다.
그렇기 때문에 필드명이 user_id 라면 User findByUser_id (String user_id ); 라는 구문을 사용하지 못합니다.
_이 있으면 findByUser까지 밖에 못찾아요.
이부분을 해결하기 위해 @Column 어노테이션을 쓰라는 답이 많았는데, 이상하게 해당 어노테이션이 안써졌습니다.
MongoDb는 어노테이션을 @Document를 써서그런가..?
아무튼 @Column 어노테이션은 사용이 안되기 때문에 다른 방법을 찾았습니다.
_으로 구분자를 지어 필드를 만드는것이 아닌 카멜표기법을 이용하여 필드명을 지어라..
userId로 필드명을 바꾸고
User findByUserId (String userId); 로 시도하니 잘만 됩니다..
MongoDB를 사용하여 필드명을 _으로 지었을때 DAO(repository)에서 사용하는 또 다른 방법을 아시는분은 댓글 달아주시면 감사하겠습니다~ (6시간 삽질의 결과가.. 필드명 변경이라 화가납니다.)
반응형