DBFlow Version:4.2.4
Bug or Feature Request:Bug
Description:Have upgraded the library from 4.0.0-beta1
to 4.2.4
.Included the library in my gradle file as follows:-
dbFlow : "com.github.Raizlabs.DBFlow:dbflow:4.2.4",
dbFlowProcessor : "com.github.Raizlabs.DBFlow:dbflow-processor:4.2.4",
dbFlowCore : "com.github.Raizlabs.DBFlow:dbflow-core:4.2.4"
My application class is as follows;-
FlowManager.init(FlowConfig.builder(this)
.addDatabaseConfig(DatabaseConfig.builder(TestDatabase.class)
.databaseName("test_database")
.build())
.build());
Our TestDatabase.class is as follows:-
@Database(version = TestDatabase.VERSION)
public class TestDatabase {
public static final int VERSION = 11;
}
Following is the stacktrace:-
Caused by: com.raizlabs.android.dbflow.structure.InvalidDBConfiguration: Model object: com.xxxx.TestMember is not registered with a Database. Did you forget an annotation?
at com.raizlabs.android.dbflow.config.FlowManager.getDatabaseForTable(FlowManager.java:141)
at com.raizlabs.android.dbflow.config.FlowManager.getModelAdapterOrNull(FlowManager.java:469)
at com.raizlabs.android.dbflow.config.FlowManager.getTableName(FlowManager.java:79)
at com.raizlabs.android.dbflow.sql.language.From.getTableAlias(From.java:43)
at com.raizlabs.android.dbflow.sql.language.From.getQuery(From.java:211)
at com.raizlabs.android.dbflow.sql.language.Where.getQuery(Where.java:189)
at com.raizlabs.android.dbflow.sql.language.BaseModelQueriable.querySingle(BaseModelQueriable.java:67)
at com.raizlabs.android.dbflow.sql.language.Where.querySingle(Where.java:249)
TestMember.class is as follows:-
@Table(database = TestDatabase.class, cachingEnabled = true)
public class TestMemberextends BaseModel implements Serializable {
@Column
public String name;
@Column
public String username;
@Column
public String phone;
@PrimaryKey
public String id;
@Column
public String pictureUrl;
@Column
public String thumb;
@Column
public String status;
@Column
public String members;
@Column
public String membersUsernames;
@Column
public String admin;
@Column
public String adminUsername;
@Column
public String presence;
@Column
public boolean isBlocked;
@Column
public boolean isMuted;
@Column(defaultValue = "0")
public int placeholder;
public TestMember() {
}
public TestMember(String id) {
this.id = id;
}
@Override
public boolean equals(Object obj) {
TestMember testMember= (TestMember) obj;
return this.id.equals(TestMember.id);
}
}
Help appreciated!!
The annotation which was handled by the new version of dbFlow was breaking, renaming classes TestMember.class
and TestDatabase.class
worked for me.