mongodb에 값 유형의 값을 ISODate 또는 play-morphia와 유사한 날짜 형식으로 저장하려고합니다. 그러나, 다음 클래스를 mongodb에 저장하려고하면 lastcheckin에 예외가 발생합니다. 그리고 그것의 유형을 String으로 변경하면 잘 동작합니다. 내가 mongodb의 ISODate에 매핑하기 위해 JAVA에서 올바른 데이터 유형을 사용하지 않았기 때문입니까? play morphia를 사용하여 mongodb에서 ISODate 사용
@Entity(value = "devices", noClassnameStored = true)
public class Device {
public String ip;
public String mac;
public Date lastcheckin;
}
속성을
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
device.lastcheckin = sdf.parse(Calendar.getInstance().getTime().toString());
}
catch (ParseException e){
PlayLogger.instance().info(e.getMessage());
}
을 lastcheckin에 현재 날짜를 지정이만큼이 java.util.Date
의로 일반적으로 잘해야 다음 스택 트레이스
Caused by: java.lang.RuntimeException: java.lang.IllegalArgumentException
at com.google.code.morphia.mapping.ValueMapper.fromDBObject(ValueMapper.java:27)
at com.google.code.morphia.mapping.Mapper.readMappedField(Mapper.java:497)
at com.google.code.morphia.mapping.Mapper.fromDb(Mapper.java:480)
... 51 more
Caused by: java.lang.IllegalArgumentException
at java.util.Date.parse(Date.java:615)
at com.google.code.morphia.converters.DateConverter.decode(DateConverter.java:32)
at com.google.code.morphia.converters.DefaultConverters.fromDBObject(DefaultConverters.java:129)
at com.google.code.morphia.mapping.ValueMapper.fromDBObject(ValueMapper.java:25)
... 53 more
예외를 수정/진단하는 데 도움이 필요하면 실제 스택 추적을 제공하는 것이 좋습니다. – evanchooly
왜 toString()/parse() 작업을 모두하는지 잘 모르겠습니다. 'device.lastcheckin = new Date()'는 잘 작동 할 것입니다. – evanchooly
@evanchooly, 올바른 형식으로 날짜를 저장하고 싶습니다. –