-
[SPRING] 몽고 DB @Field 없을때 오류 org.springframework.data.mapping.PropertyReferenceException: No property log found for typeSpring/spring boot 및 기타 2020. 10. 26. 22:49
스프링부트 2.3.3 을 쓰게되면서 부터 라이브러리 사용법들이 조금 많이 달라졌다.
예를 들어 몽고db 가 있다.
spring-data-mongodb:3.0.0 이후의 버젼이다.
몽고 db 쿼리 사용 예시이다.
Date dateLogStartDate = new Date(); // date 조건검색 시작 Date dateLogEndDate = new Date(); // date 조건검색 종료 Query query = new Query(); query.with(Sort.by(Sort.Direction.DESC, "log_date")); // date 내림차순 Criteria criteria = Criteria .where("log_date").gte(dateLogStartDate).lte(dateLogEndDate); query.addCriteria(criteria); Map<String, Object> result = new HashMap<String, Object>(); List<Test> mongo = null; long count = mongoTemplate.count(query, Test.class); log.info( "count : {}", count); int perPage = 50; int currentPage = 1; if(count > 0) { query.with(Sort.by(Sort.Direction.DESC, "log_date")); // date 내림차순 query.limit(perPage); query.skip(perPage * (currentPage - 1) ); mongo = mongoTemplate.find(query, Test.class); }
document 클래스
@Document(collection="test") public class Test { private Date log_date; private String data; private String text; }
spring-data-mongodb:3.0.0 이전 버젼에서는 어노테이션을 붙이지 않아도 동작을 했다.
하지만 스프링부트 2.3.0 이후버젼에서 사용하는 spring-data-mongodb:3.0.0 버젼이상은
@Field 어노테이션을 꼭 붙여줘야 한다.
@Document(collection="test") public class Test { @Field("log_date") private Date log_date; @Field("data") private String data; @Field("text") private String text; }
@Field 을 붙여주지 않고 쿼리를 조회시 다음과 같은 오류가 생긴다.
org.springframework.data.mapping.PropertyReferenceException: No property log found for type Test!
반응형'Spring > spring boot 및 기타' 카테고리의 다른 글
spring boot 1.X 와 2.X 차이점 (0) 2021.01.08 [SPRING] kafka Error registering AppInfo mbean - 스프링부트 카프카 (0) 2020.11.03 [SPRING] 스프링 스케쥴링 추가 @Scheduled (0) 2020.09.27 vscode 로 스프링부트 실행하기 (0) 2020.09.18 [spring boot] mongodb 연결 및 _class 삭제 (5) 2020.09.09