mardi 28 juillet 2015

How to get column/field names in OrmLite?

I'm defining table/field names thru usual annotations, like:

@DatabaseTable(tableName = "M")
public class Headers {
    @DatabaseField(generatedId = true, columnName = "_ID", dataType = DataType.INTEGER_OBJ) //android requires primary key as _ID
    private Integer id;

    @DatabaseField(
            columnName = "MM2",
            uniqueCombo = true,
            canBeNull = true, //null means root folder
            dataType = DataType.INTEGER_OBJ
    )
    private Integer parentId;
}

Meantime somewhere deep in my code, I need to make some queries, like:

 QueryBuilder<Headers, Integer> qb = headersDao.queryBuilder();
 qb.where().eq("_ID",  headerId); //_ID field name

This kind of code looks ugly, since field name (in this case _ID) is hardcoded (even if would be declared as final static String)

Question: is it normal OrmLite coding practice? I'd be expecting that I could use instead of hardcoded _ID field some small code. For sure OrmLite "knows" all field names. Anyone can help me?

Aucun commentaire:

Enregistrer un commentaire