반응형
스프링부트 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 |