I have the following class which I'm using as the base of all the models in my project:
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..
}
I'm then trying to extend from it, in the following way:
public class User extends BaseModel
{
    static String table = "user";
    //snip
}
However, if I try to do the following:
if ( User.exists( 4 ) )
   //do something
Then, rather than the query: "SELECT id FROM user WHERE id = ?", it is producing the query: "SELECT id from null WHERE id = ?". So, the overriding of the table field in the User class doesn't seem to be having any effect.
How do I overcome this? If I added a setTable() method to BaseModel, and called setTable() in the constructor of User, then will the new value of table be available to all methods of the User class as well?
 
     
     
    