itsource

Persistent LocalDateTimeAsString이 DateTimeParseException이 되다

mycopycode 2023. 1. 15. 17:22
반응형

Persistent LocalDateTimeAsString이 DateTimeParseException이 되다

jadira-usertype을 사용하는 경우 휴지 상태 모델에서org.jadira.usertype.dateandtime.threeten.PersistentLocalDateTimeAsStringType으로 변환은 되돌릴 수 없습니다.

@Column(name="requested_start")
@Type(type="org.jadira.usertype.dateandtime.threeten.PersistentLocalDateTimeAsString")
private LocalDateTime requestedStartDate;

다음 형식의 datetime 개체를 만드는 경우

myObject.setRequestedStartDate(LocalDateTime.parse("2014-12-28T19:30:00"));

"2014-12-28T19:30"으로 DB(MariaDB)에 저장되며 초 부분은 무시됩니다(이유는 알 수 없습니다).

데이터를 다시 쿼리할 때 다음과 같은 예외가 발생합니다.

java.time.format.DateTimeParseException: Text '2014-12-28T19:30' could not be parsed at index 16

단, 날짜를 '2014-12-28T19:30:01'로 설정하고 초수를 '01'로 설정하면 정상적으로 동작합니다.

스프링 프레임 워크의 Date Time Format도 설정해 보았습니다만, 여전히 같은 예외에 직면하고 있습니다.

@Column(name="requested_start")
@Type(type="org.jadira.usertype.dateandtime.threeten.PersistentLocalDateTimeAsString")
@DateTimeFormat(pattern="yyyy-MM-dd'T'HH:mm:ss")
private LocalDateTime requestedStartDate;

이 수정된 패턴 "yyy-MM-dd'T"를 사용해 보십시오.HH:mm[:ss].

각 괄호의 의미는 구문 분석 중 옵션 부품을 나타냅니다(javadoc 참조).

언급URL : https://stackoverflow.com/questions/27701290/persistentlocaldatetimeasstring-results-in-datetimeparseexception

반응형