1

非常に便利であることがわかったので、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)

?

前もって感謝します。

4

2 に答える 2