0

私は自分のアプリでormlite androidを使用しています。実際には3つの異なるクラスのオブジェクトである3つのタイプのデータを格納できる列を持つテーブルがあります.pojoクラスでそのフィールドのデータ型を宣言したいのですが、私もオブジェクトで試しましたが、それでもエラーが表示されます。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 クラスのオブジェクトであるデータベース内の 3 つの異なるタイプにすることができます。しかし、私の問題は、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)コードに登録できます。


編集:

が 3 つのタイプのいずれかである場合mitemは、3 つの個別のフィールドがあり、それぞれに明確なタイプがあることをお勧めします。使用しないでくださいObject。次に、pojo クラスのすべてのインスタンスに対して、3 つのフィールドのうちの 1 つが設定され、他のフィールドは null になります。

于 2011-09-16T15:49:58.877 に答える