我打算使用ORMLite,因爲我發現它非常有用......但是,我發現了一個缺點。ORMLite不支持GregorianCalendar映射
我有有一個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:Field c lass java.util.GregorianCalendar for field FieldType:name = fechaCreacion,class = Usuario對[email protected]類型無效,也許應該是class [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的日期對應Java的java.util.Date ...
而我的問題是爲什麼支持一個不推薦的類?
您有任何解決方案不要更改GregorianCalendar?也許將註釋更改爲
@DatabaseField(dataType = DataType.STRING)
?
預先感謝您。
這是一個古老的答案,但我還是想補充這一點:使用'DataType.SERIALIZABLE'是確定持久化數據。但是你無法對你的領域進行比較(例如選擇一個給定日期的記錄) – mithrop