Ormlite:如何以编程方式更改autorefresh注释值?

时间:2015-10-22 20:19:33

标签: android ormlite

我在Android上使用Ormlite插件来管理我的数据库,我设置了一个带有foreignAutoRefresh的类字段,因为这是默认行为(通常我想自动加载所有对象)。

@DatabaseTable(tableName = "MyClass")
public class MyClass {

    @DatabaseField(columnName = "field",
                   foreign = true, foreignAutoRefresh = true )
    private MyObject field;

    ...
}

但在特定的罕见情况下,我想加载一个MyClass实例而不自动加载Object字段(暂时将foreignAutoRefresh设置为false)

我怎么能这样做?

public class DBHelper extends OrmLiteSqliteOpenHelper {

    @Override
    public void onUpgrade(...) {

        // ... here I want to set MyClass.field.autoreRefresh to false.

        List<MyClass> myClass = myClassDao.queryForAll();

        ... do some of work here ...

        // ... set again the autoRefresh field value to true.
    }
}

非常感谢你!

1 个答案:

答案 0 :(得分:0)

您正在寻找一种即时更改Java注释的方法。去看看如何做到这一点: Modify a class definition's annotation string parameter at runtime