ORMLite を使用する Android プロジェクトがあります。すべて正常に動作しますが、データベースの一部のフィールドではjava.sql.Timestamp
フィールド タイプとして使用されます。以前使用していたORMLite 4.10では問題なく動作しました。しかし、今私はORMLiteを更新する必要があり、問題があります.ORMLiteを新しいバージョンに更新して実行すると、アプリは例外をスローします:
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
以前は createDate フィールドの dataType パラメータがありませんでした。しかし、追加したとき、エラーは修正されず、アプリもこの例外をスローします:(。プロジェクトはすでに市場に出ているため、dataTypeを他のタイプ(Dateなど)に変更することはできず、このフィールドも削除できます。
新しい ORMLite のタイムスタンプには何を使用すればよいですか? それともORMLiteのバグですか?
更新: Timestamp 型を Serializable 型に変更して修正しました。コードは次のようになります。
@DatabaseField(dataType = DataType.SERIALIZABLE)
public Serializable createDate;
public Timestamp getCreateDate()
{
return (Timestamp)createDate;
}