ORMLite вставить дату с SQL

Я настроил базу данных ORMLite в своем проекте Android.

У меня есть класс RbFehler со следующим полем:

@DatabaseField(columnName = "DATUM_LA", dataType = DataType.DATE_STRING,
    format = "yyyy-MM-dd HH:mm:ss")
public Date datum_la;

У меня есть некоторая логика, которая импортирует данные из текстового файла, в котором хранятся операторы вставки SQL. Одна строка будет выглядеть так:

INSERT INTO RbFehler (KATALOGART,SYST,SUBSYST,KOMP,BAUTEIL,BEZ,PSYST,PSUBSYST,
    PKOMP,PBAUTEIL,INAKTIV,GELOESCHT,DATUM_LA)
    VALUES ('VW','4F5AB211','0600','4F5AA900','0010','Venturirohr','4F5AB211',
        '0600','4F5AA900','0000','0','0',2012-06-04 08:08:08);

Но я всегда получаю следующую ошибку, когда я звоню:

dao.execute RawNoArgs(line);

java.lang.Illegal Argument Exception: Field class java.sql.Date for field
    Field Type:name=datum_la,class=RbFehler is not valid for data
    persister com.j256.ormlite.field.types.DateStringType@416ed260

Я также пытался добавить " ' " к дате в операторе SQL, но получаю ту же ошибку. Если я удалю дату из SQL и класса, все будет работать нормально.

Может ли кто-нибудь сказать мне, что я делаю неправильно? Я нашел только такие вопросы:


person schw4ndi    schedule 06.11.2012    source источник


Ответы (1)


Я понял:

Убедитесь, что вы используете правильный объект Date в Java:

@DatabaseField(columnName = "DATUM_LA", dataType = DataType.DATE_STRING,
 format = "yyyy-MM-dd HH:mm:ss")
public java.util.Date datum_la;

А не java.sql.Date.

person schw4ndi    schedule 09.11.2012
comment
Кроме того, я улучшил здесь сообщение об ошибке ORMLite, чтобы указать ожидаемый класс для типа данных. Это должно помочь кому-то в будущем. - person Gray; 09.11.2012