私はORMLiteを使用するAndroidプロジェクトを持っています。すべて正常に動作しますが、データベースの一部のフィールドではフィールドタイプとしてjava.sql.Timestamp
が使用されます。 ORMLite 4.10についてはこれまでに使用していましたが、うまく機能しました。しかし、今、私はORMLiteを更新し、問題を持っている必要があります。.. 私は新しいバージョンにORMLiteを更新し、それを実行すると、アプリが例外をスロー:CREATEDATEフィールドにはデータ型のパラメータは、以前にはなかったAndroid + ORMLite + java.sql.Timestamp
W/System.err( 615): java.sql.SQLException: ORMLite can't store unknown class
class java.sql.Timestamp for field 'createDate'.
Serializable fields must specify dataType=DataType.SERIALIZABLE
。しかし、私がそれを追加したとき、エラーは修正されておらず、アプリケーションもこの例外をスローします:(プロジェクトは既にマーケットにあるので、他のタイプ(Dateなど)にdataTypeを変更することはできず、このフィールドも削除できます。
私は新しいORMLiteにタイムスタンプのために何を使うべきか、それはORMLiteバグです
UPDATE:?。 はSerializableを型にタイムスタンプの種類を変更することで、それを修正今のコードは次のようになります。
@DatabaseField(dataType = DataType.SERIALIZABLE)
public Serializable createDate;
public Timestamp getCreateDate()
{
return (Timestamp)createDate;
}
後世のために、そのような 'Serializable'ハックをする必要はありません。そこに 'Serializable'を実装する任意の型を持つことができるはずです。 – Gray