Android 可序列化对象的ORMLite查询字符串

Android 可序列化对象的ORMLite查询字符串,android,ormlite,Android,Ormlite,我在实体中添加了一个新列,如: @DatabaseField(persisterClass = SerializableType.class) Account account; 该表已在以前的应用程序版本中创建。因此,在或mlitesqliteopenhelper中,我必须在函数中执行一个查询字符串: @Override public void onUpgrade(SQLiteDatabase database, ConnectionSource connectionSource, int o

我在实体中添加了一个新列,如:

@DatabaseField(persisterClass = SerializableType.class)
Account account;
该表已在以前的应用程序版本中创建。因此,在
或mlitesqliteopenhelper
中,我必须在函数中执行一个查询字符串:

@Override
public void onUpgrade(SQLiteDatabase database, ConnectionSource connectionSource, int oldVersion, int newVersion) {
    try {
        if (oldVersion < 2) {
            String userTable = DatabaseTableConfig.extractTableName(User.class);
            getDao(User.class).executeRaw("ALTER TABLE `" + userTable + "` ADD COLUMN account SERIALIZABLE;");
        }
    } catch (SQLException e) {

    }
}
@覆盖
public void onUpgrade(SQLiteDatabase数据库、ConnectionSource ConnectionSource、int oldVersion、int newVersion){
试一试{
如果(旧版本<2){
字符串userTable=DatabaseTableConfig.extractTableName(User.class);
getDao(User.class).executeRaw(“ALTERTABLE`+userTable+”`ADD COLUMN account SERIALIZABLE;”);
}
}捕获(SQLE异常){
}
}

查询字符串应该是什么?查询字符串
alter table xyz add column abc serializable
是否正确?或者是否有其他可能的方法在现有表中添加可序列化对象?

或mlite将可序列化对象持久化为SQL类型
VARBINARY
。这是一种特殊类型,它将对象序列化为字节序列,然后在返回时反序列化。该字段必须是实现java.io.Serializable接口的对象。根据数据库类型,可以存储的对象大小会有限制

注意:要使用此类型,必须使用数据类型字段指定
DataType.SERIALIZABLE
。它不会被自动检测到。请参阅DatabaseField数据类型


您还可以像在线程中一样定义和注册自己的持久化程序。

谢谢@Anoop。我改变了数据类型SERIALIZABLE,执行相同的查询,它就开始工作了。
// account is an object that implements Serializable
@DatabaseField(dataType = DataType.SERIALIZABLE)
Account account;