本文介绍了的Andr​​oid + ORMLite +的java.sql.Timestamp的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个使用ORMLite的Andr​​oid项目。所有工作正常,但在数据库中的某些字段,它使用的java.sql.Timestamp 的字段类型。它的工作罚款ORMLite 4.10,这是我以前用过。但现在我需要更新ORMLite,并有一个问题..
当我更新ORMLite到较新的版本并运行它,应用程序引发异常:

  W / System.err的(615):值java.sql.SQLException:ORMLite不能储存未知的类
    类java.sql.Timestamp中的字段CREATEDATE。
    序列化字段必须指定的dataType = DataType.SERIALIZABLE

有是CREATEDATE场任何数据类型参数之前。但是,当我说,是不是固定的错误,并且应用程序引发此异常也:(。该项目是已经在市场了,所以我不能改变数据类型为其他类型(如日期),并且可以去除过多这一领域。

我应该使用时间戳较新ORMLite什么?或者是ORMLite错误吗?

更新:
通过改变时间戳类型为序列型固定它。现在,code是这样的:

  @DatabaseField(dataType的= DataType.SERIALIZABLE)
公众可序列化CREATEDATE;公共时间戳getCreateDate()
{
    回报(时间戳)CREATEDATE;
}


解决方案

对不起这个@ st1ing。这当然可以在的错误,但我怀疑,而这可能是不兼容。在4.14版本中,我们不得不做出改变序列化字段的处理方式。 是否在线。引用:

@DatabaseField(dataType = DataType.SERIALIZABLE)
Serializable field;

Actually, the exception is trying to give you a hint as to how to fix you problem:

Serializable fields must specify dataType=DataType.SERIALIZABLE

So try adding that to your Timestamp field. Let me know if it works.

这篇关于的Andr​​oid + ORMLite +的java.sql.Timestamp的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-30 04:16