非常に便利であることがわかったので、ORMLite を使用します...ただし、欠点が見つかりました。
次のようにマップされる GregorianCalendar 型属性を持つクラスがあります。
@DatabaseField(dataType = DataType.DATE_STRING)
private GregorianCalendar fechaNacimiento;
アプリを実行すると、logcat に次のメッセージが表示されてクラッシュします。
07-31 20:52:47.629: E/AndroidRuntime(11808): 致命的な例外: メイン 07-31 20:52:47.629: E/AndroidRuntime(11808): java.lang.RuntimeException: アクティビティ ComponentInfo{com を開始できません。 joninazio.euskofest/com.joninazio.euskofest.ui.MenuPrincipalActivity}: java.lang.IllegalArgumentException: フィールド FieldType:name=fechaCreacion,class=Usuario のフィールド クラス java.util.GregorianCalendar は、タイプ com.j256.ormlite に対して有効ではありません。 field.types.DateStringType@40dca268、おそらくクラス [B 07-31 20:52:47.629: E/AndroidRuntime(11808): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2308) である必要があります
ここで確認できるように、GregorianCalendar は OrmLite でサポートされていないようです: http://ormlite.com/data_types.shtmlは、OrmLite の DATE が Java の java.util.Date に対応すると述べています...
私の質問は、なぜ非推奨のクラスをサポートするのですか?
GregorianCalendar を変更しない解決策はありますか? おそらく注釈を
@DatabaseField(dataType = DataType.STRING)
?
前もって感謝します。