0

我在我的应用程序中使用 ormlite android,我有一个表,其中有一列可以存储三种类型的数据,这些数据实际上是三个不同类的对象。我想在我的 pojo 类中声明该字段的数据类型,我也尝试使用 Object 但仍然显示错误。Ormlite 不理解 Object 数据类型。

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 数据类型。

4

1 回答 1

2

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


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

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

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

http://ormlite.com/docs/serializable

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


编辑:

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

于 2011-09-16T15:49:58.877 回答