gpt4 book ai didi

android - OrmLite、日历和时间戳

转载 作者:太空狗 更新时间:2023-10-29 12:46:54 26 4
gpt4 key购买 nike

我在使用 android 中的 java 字段进行某些 OrmLite 映射时遇到问题。

1) 我在 java 类中有 Calendar 类型,在 SQLlite 中定义为 TimeStamp 的相同字段,当我运行方法 findAll() 时,我得到以下异常:

ORMLite can't store unknown class class java.util.Calendar for field
'Start'. Serializable fields must specify dataType=DataType.SERIALIZABLE

如果我使用 setDataType(DataType.SERIALIZABLE); 我会收到此错误:

java.sql.SQLException: Could not read serialized object from byte array: [50, 48,

我也尝试过使用 DataType.TIME_STAMP 但后来我收到了这个错误:

Field class java.util.Calendar for field FieldType:name=Start,class=PeriodTest is
not valid for type com.j256.ormlite.field.types.TimeStampType@416f9ea0,
maybe should be class java.sql.Timestamp

2) 我对 TimeStamp (DataType.TIME_STAMP) java 类有同样的问题。例如:

E/AndroidRuntime(14662): java.lang.Error: java.sql.SQLException:
Could not assign object 'Mon Jul 01 09:46:12 CEST 2013' to field
FieldType:name=timestamp

有人知道这两种情况的解决方案吗?

提前致谢,奥吉

解决方案:

-数据需要被序列化并像那样插入到数据库中以便在后面读取。我不知道我怎么没有早点意识到这一点,但是......

最佳答案

ORMLite can't store unknown class class java.util.Calendar for field
'Start'. Serializable fields must specify dataType=DataType.SERIALIZABLE

这是想告诉你 ORMLite本身并不知道 Calendar 类型。它不知道如何在 SQL 中表示它。

java.sql.SQLException: Could not read serialized object from byte array: [50, 48,

是的。如果您已经将数据存储在数据库中,那么存储可序列化字段不是一种选择。

Field class java.util.Calendar for field FieldType:name=Start,class=PeriodTest is
not valid for type com.j256.ormlite.field.types.TimeStampType@416f9ea0,
maybe should be class java.sql.Timestamp

这是说 ORMLite 无法从 Calendar 映射到 Timestamp

E/AndroidRuntime(14662): java.lang.Error: java.sql.SQLException:
Could not assign object 'Mon Jul 01 09:46:12 CEST 2013' to field
FieldType:name=timestamp

这听起来像是数据库中有一个字符串但是一个Timestamp 字段。如果没有完全异常,则很难知道发生了什么。

Data needs to be serialized and inserted like that into db in order to be read afterwords.

这是正确的,听起来您有自己的解决方案,但为了后代,您还可以做一些其他事情。

如果您只是使用 Calendar 来存储日期/时间,然后切换到使用其他类型(如 DateDateTime)会被推荐。您还可以编写自定义持久性。请参阅:Map PostgreSql money data type to ORMLite .

关于android - OrmLite、日历和时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17396618/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com