当字段可以是多种类型时,在POJO类中定义数据类型

时间:2011-09-16 13:09:15

标签: android ormlite

我在我的应用程序中使用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数据类型。

1 个答案:

答案 0 :(得分:2)

请提供您尝试保留的对象的代码示例,并列出ORMLite正在抛出的完整例外。


但与此同时,我可以谈谈ORMLite可以坚持的类型。这是完整列表:

  

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

它将检测各种字段类型。对于列表中特定的对象,ORMLite还支持实现Serializable的持久化对象。对于这些,您必须使用@DatabaseField(dataType = DataType.SERIALIZABLE)专门声明类型。

  

http://ormlite.com/docs/serializable

最后,对于高级用户,您可以使用@DatabaseField(persisterClass = ....class)代码定义和注册自己的persister类。


修改

我建议如果mitem是3种类型中的一种,那么你有3个单独的字段,每个字段都有一个明确的类型 - 不要使用Object。然后,对于pojo类的每个实例,将设置3个字段中的1个,其他字段将为null。