我通过通常的注释来定义表/字段名称,例如:
@DatabaseTable(tableName = "M")
public class Headers {
//android requires primary key as _ID
@DatabaseField(generatedId = true, columnName = "_ID", dataType = DataType.INTEGER_OBJ)
private Integer id;
@DatabaseField(
columnName = "MM2",
uniqueCombo = true,
canBeNull = true, //null means root folder
dataType = DataType.INTEGER_OBJ
)
private Integer parentId;
}
同时,在我的代码深处,我需要进行一些查询,例如:
QueryBuilder<Headers, Integer> qb = headersDao.queryBuilder();
qb.where().eq("_ID", headerId); //_ID field name
这样的代码看起来很丑,因为字段名称(在这种情况下为_ID
)是硬编码的,即使声明为final static String
。
问题:这是OrmLite编码实践的正常方式吗?我期望我可以使用一些小代码代替硬编码的_ID
字段。当然OrmLite“知道”所有字段名称。有人能帮助我吗?