Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在SQLite中插入包含枚举整数和日期时间数据类型的Ormlite行_Android_Sqlite_Ormlite - Fatal编程技术网

Android 在SQLite中插入包含枚举整数和日期时间数据类型的Ormlite行

Android 在SQLite中插入包含枚举整数和日期时间数据类型的Ormlite行,android,sqlite,ormlite,Android,Sqlite,Ormlite,这是我的实体类。我在这个类中使用了三个ENUM_整数数据类型 @DatabaseTable public class MessageData { @DatabaseField(generatedId = true, columnName = ID_FIELD_NAME) private Integer messageId; @DatabaseField(dataType = DataType.DATE_TIME, columnName = DATE_FIELD_NAM

这是我的实体类。我在这个类中使用了三个ENUM_整数数据类型

@DatabaseTable
public class MessageData {

    @DatabaseField(generatedId = true, columnName = ID_FIELD_NAME)
    private Integer messageId;

    @DatabaseField(dataType = DataType.DATE_TIME, columnName = DATE_FIELD_NAME)
    private Date date;

    @DatabaseField(dataType = DataType.ENUM_INTEGER, columnName = DIRECTION_FIELD_NAME)
    private MessageEnums.MessageDirection direction;

    @DatabaseField(columnName = CONTACT_ID_FIELD_NAME)
    private String contactId;

    @DatabaseField(columnName = MESSAGE_FIELD_NAME)
    private String message;

    @DatabaseField(dataType = DataType.ENUM_INTEGER, columnName = TYPE_FIELD_NAME)
    private MessageEnums.MessageType type;

    @DatabaseField(columnName = CONTENT_ADDRESS_FIELD_NAME)
    private String contentAddress;

    @DatabaseField(dataType = DataType.ENUM_INTEGER, columnName = STATUS_FIELD_NAME)
    private MessageEnums.MessageStatus status;

    @DatabaseField(columnName = READ_FIELD_NAME)
    private boolean read;

    //.....
}
这是我的枚举类

public class MessageEnums {
    public enum MessageDirection{
        IN,
        OUT
    }

    public enum MessageType{
        TEXT,
        VOICE,
        IMAGE,
        STICKER,
        AUDIO,
        VIDEO,
        LOCATION
    }

    public enum MessageStatus{
        PENDING,
        SENT,
        DELIVERED,
        RECEIVED
    }
}
我使用此代码插入一行

newMessageData = new MessageData(date, MessageEnums.MessageDirection.OUT, params[2], params[1]
                    , MessageEnums.MessageType.TEXT, "", MessageEnums.MessageStatus.SENT, true);

        Dao<MessageData, Integer> dao = myApplication.getMessageDatabaseHelper().getMessageDao();
        dao.create(newMessageData);
newMessageData=newMessageData(日期,MessageEnums.MessageDirection.OUT,参数[2],参数[1]
,MessageEnums.MessageType.TEXT,“,MessageEnums.MessageStatus.SENT,true);
Dao Dao=myApplication.getMessageDatabaseHelper().getMessageDao();
创建(newMessageData);
我在运行最后一行后出现此错误

无法在对象com.x.xx.database上运行insert stmt。MessageData@41a72790:插入
消息数据
日期
方向
联系人ID
消息
类型
内容地址
状态
读取
)值(?,,,,,,,,,?)


希望有人帮帮我

问题来自日期字段。当我将数据类型从DATE\u TIME更改为DATE\u字符串时,问题就解决了。我不知道日期时间有什么问题。

例外情况应该有更多信息。“起因”消息是怎么说的?亲爱的@Gray,也许这条消息能帮上忙。cause=java.sql.SQLException:无法使用反射从Joda DateTime获取毫秒:Mon Jan 12 13:18:18 GMT+03:30 1970I使用此代码填充日期变量:Calendar c=Calendar.getInstance();Date-Date=c.getTime();我确信这是由于日期字段导致的,因为当我为日期发送null时,成功插入了行。很抱歉,连续评论。我将日期字段的数据类型从日期\时间更改为日期\字符串,现在一切都正常了。:)日期时间用于Joda DateTime。您正在使用java.util.Date.Thank。是的,也许:)