SpringBoot에서 MongoDB 필드 형식 변환기 구현
1 목적
MongoDB
Java
String
LocalDateTime
이루다
@Data // lombok
@Accessors(chain = true)
@Document(collection = "UserEntity")
public class User implements Serializable {
@Id
private String id;
private String username;
private String password;
// java LocalDateTime, Spring Data MongoDB :
// LocalDateTime -> MongoDB {"date" : ISODate("2019-11-12T23:00:00.809Z")}
private LocalDateTime birthDay;
}
public interface UserRepository extends MongoRepository{
}
// Direction: Java -> MongoDB
@WritingConverter
public class DateToString implements Converter {
@Override
public String convert(LocalDateTime source) {
return source.toString() + 'Z';
}
}
// Direction: MongoDB -> Java
@ReadingConverter
public class StringToDate implements Converter {
@Override
public LocalDateTime convert(String source) {
return LocalDateTime.parse(source,DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"));
}
}
@Configuration
public class MongoConfig {
@Bean
public CustomConversions customConversions() {
List> converterList = new ArrayList>();
converterList.add(new DateToString());
converterList.add(new StringToDate());
return new CustomConversions(converterList);
}
}
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserDaoTest {
@Autowired
private UserRepository userRepository;
@Test
public void testSaveUser() {
UserEntity user = new UserEntity();
user.setUserName("test");
user.setPassWord("test");
user.setBirthDay(LocalDateTime.now());
userRepository.saveUser(user);
}
}
3 문자열의 날짜는 어떻게 구간으로 조회합니까?
public interface UserRepository extends MongoRepository{
List findByBirthDayBetween(LocalDateTime start, LocalDateTime end);
}
전재 대상:https://www.cnblogs.com/linzhanfly/p/9578738.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.