我有以下类,我将其用作项目中所有模型的基础:
public abstract class BaseModel
{
static String table;
static String idField = "id";
public static boolean exists(long id) throws Exception
{
Db db = Util.getDb();
Query q = db.query();
q.select( idField ).whereLong(idField, id).limit(1).get(table);
return q.hasResults();
}
//snip..
}
然后我尝试通过以下方式扩展它:
public class User extends BaseModel
{
static String table = "user";
//snip
}
但是,如果我尝试执行以下操作:
if ( User.exists( 4 ) )
//do something
然后,它不是查询:"SELECT id FROM user WHERE id = ?"
,而是生成查询:“SELECT id from null WHERE id = ?”。table
因此,类中字段的覆盖User
似乎没有任何效果。
我该如何克服呢?如果我setTable()
向 BaseModel 添加了一个方法,并setTable()
在 的构造函数中调用,那么该类的所有方法也可以使用User
新的值吗?table
User