我在我的应用程序中使用ormlite android,我有一个表,其中有一列可以存储三种类型的数据,实际上是三个不同类的对象。我想在我的pojo类中声明该字段的数据类型我也尝试使用Object,但它仍然显示错误.Ormlite不理解对象数据类型。
ormlite是否为此类功能提供任何支持?
修改1
这是我的pojo课程
@DatabaseTable(tableName = "itinerary_item")
public class ItineraryItem {
@DatabaseField(columnName = "id", id = true)
private int mId;
@DatabaseField(dataType = DataType.SERIALIZABLE, columnName = "item_type", foreign = true, foreignAutoRefresh = true)
private Object mItem;
这个mitem可以是3个不同类型的数据库,它基本上是三个不同POJO类的对象。 但我的问题是ORMLite不支持Object数据类型。
答案 0 :(得分:2)
请提供您尝试保留的对象的代码示例,并列出ORMLite正在抛出的完整例外。
但与此同时,我可以谈谈ORMLite可以坚持的类型。这是完整列表:
它将检测各种字段类型。对于列表中特定的对象,ORMLite还支持实现Serializable
的持久化对象。对于这些,您必须使用@DatabaseField(dataType = DataType.SERIALIZABLE)
专门声明类型。
最后,对于高级用户,您可以使用@DatabaseField(persisterClass = ....class)
代码定义和注册自己的persister类。
修改强>
我建议如果mitem
是3种类型中的一种,那么你有3个单独的字段,每个字段都有一个明确的类型 - 不要使用Object
。然后,对于pojo类的每个实例,将设置3个字段中的1个,其他字段将为null。