Определение типа данных в классе POJO, когда поле может быть нескольких типов - PullRequest
0 голосов
/ 16 сентября 2011

Я использую ormlite android в своем приложении, и у меня есть таблица, в которой есть столбец, в котором могут храниться данные трех типов, которые на самом деле являются объектами трех разных классов. Я хочу объявить тип данных этого поля в своем классе pojo и я также попытался с Object, но все еще он показывает ошибку. Ormlite не понимает тип данных Object.

Обеспечивает ли ormlite такую ​​функциональность?

Редактировать 1

Это мой класс Пойо

* * 1010

Где этот элемент может иметь 3 различных типа в базе данных, которые в основном являются объектами трех различных классов POJO. Но моя проблема в том, что ORMLite не поддерживает тип данных Object.

1 Ответ

2 голосов
/ 16 сентября 2011

Пожалуйста, предоставьте образец кода из объекта, который вы пытаетесь сохранить, и укажите полное исключение, которое ORMLite выбрасывает.


Но пока я могу немного рассказать о том, какие типы ORMLite могут сохраняться. Вот полный список:

http://ormlite.com/docs/data-types

Он будет обнаруживать различные типы полей. Для объектов, которые находятся конкретно в списке, ORMLite также поддерживает постоянные объекты, которые реализуют Serializable. Для этого вы должны специально объявить тип с помощью @DatabaseField(dataType = DataType.SERIALIZABLE).

http://ormlite.com/docs/serializable

Наконец, для опытных пользователей вы можете определить и зарегистрировать свой собственный класс persister с кодом @DatabaseField(persisterClass = ....class).


Edit:

Я бы предложил, если mitem - это один из 3 типов, тогда у вас есть 3 отдельных поля, каждое с определенным типом - не используйте Object. Затем для каждого экземпляра вашего класса pojo будет установлено 1 из 3 полей, а остальные будут нулевыми.

...