Используя конфигурационный файл ORMLite: java.sql.SQLException: Сериализуемые поля должны указывать dataType=DataType.SERIALIZABLE
Я пытаюсь использовать сгенерированный класс (сгенерированный с помощью Google App Engine) в моем приложении Android через ORMLite. Я создал файл конфигурации следующим образом:
# --table-start--
dataClass=com.name.app.entities.customerendpoint.model.Customer
tableName=customer
# --table-fields-start--
# --field-start--
fieldName=key
generatedId=false
# --field-end--
# --field-start--
fieldName=firstName
#columnName=lastClickDate
# --field-end--
# --field-start--
fieldName=lastName
#indexName=clickcount_name_idx
# --field-end--
# --field-start--
fieldName=email
# --field-end--
# --field-start--
fieldName=postcode
# --field-end--
# --field-start--
fieldName=birthDate
dataType=DataType.SERIALIZABLE
#foreign=true
# --field-end--
# --field-start--
fieldName=gender
# --field-end--
# --field-start--
fieldName=facebookId
# --field-end--
# --field-start--
fieldName=googleId
# --field-end--
# --field-start--
fieldName=pictureUrl
# --field-end--
# --field-start--
fieldName=verificationCode
# --field-end--
# --table-fields-end--
# --table-end--
#################################
В конструкторе моего DBHelper я имею в виду этот файл:super(context, "APP", null, 1, R.raw.ormlite_config);
К сожалению, когда я создаю таблицу, возникает SQLException:
java.sql.SQLException: ORMLite can't store unknown class class com.google.api.client.util.DateTime for field 'birthDate'. Serializable fields must specify dataType=DataType.SERIALIZABLE
Странно то, что я определенно указал поле birthDate для Serializable:
fieldName=birthDate
dataType=DataType.SERIALIZABLE
У кого-нибудь есть подсказка, что я делаю неправильно или это ошибка в ORMLite?
1 ответ
Решение
Вы должны сохранить тип данных dataPersister=SERIALIZABLE
вместо dataType=DataType.SERIALIZABLE
в вашем конфигурационном файле.