ORMLite — постоянный LocalDateTiime — неразбираемая датаJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 ORMLite — постоянный LocalDateTiime — неразбираемая дата

Сообщение Anonymous »

Я использую ORMLite для сохранения объектов в базе данных SQLite, но сохранение значений LocalDateTime не работает. Я уже настроил собственный класс персистера следующим образом:

Код: Выделить всё

public class LocalDateTimePersister extends TimeStampType {

private static final LocalDateTimePersister singleTon = new LocalDateTimePersister();

String dateFormat = "yyyy-MM-dd'T'HH:mm:ss";
DateTimeFormatter dtf = DateTimeFormatter.ofPattern(dateFormat);
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);

private LocalDateTimePersister() {
super(SqlType.STRING, new Class[] { LocalDateTime.class });
}

public static LocalDateTimePersister getSingleton() {
return singleTon;
}

@Override
public Object javaToSqlArg(FieldType fieldType, Object javaObject) {
LocalDateTime dateTime = (LocalDateTime) javaObject;
if (dateTime == null) {
return null;
} else {
return dateTime.format(dtf);
}
}

@Override
public Object sqlArgToJava(FieldType fieldType, Object sqlArg, int columnPos) {
return LocalDateTime.parse((String) sqlArg, dtf);
}
}
Значение сохраняется правильно, но загрузка объекта вызывает это исключение:

Код: Выделить всё

java.text.ParseException: Unparseable date: "2023-10-15T12:57:46.000" does not match (\p{Nd}++)\Q-\E(\p{Nd}++)\Q-\E(\p{Nd}++)\Q \E(\p{Nd}++)\Q:\E(\p{Nd}++)\Q:\E(\p{Nd}++)\Q.\E(\p{Nd}++)
В базе данных сохранено значение времени «2023-10-15T12:57:46», поэтому я не знаю, откуда взялась эта строка со значением миллисекунд. Точка останова внутри моего метода javaToSqlArg не сработала, и я не могу понять, что именно вызывает эту ошибку.
Кроме того, я заметил, что при создании таблицы не применяется ограничение внешнего ключа, хотя атрибуты аннотированы соответствующим образом. Таким образом, дочерние объекты просто остаются в базе данных, когда я удаляю родительский объект. Есть ли способ изменить это, не используя текстовый запрос для создания таблицы?

Подробнее здесь: https://stackoverflow.com/questions/772 ... eable-date
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»