我使用了OrmLite的HelloAndroid示例,并根据我的要求对其进行了修改,并且完美无缺。
然后我添加了另一个Bean(POJO带有正确的注释)并且还更新了我的Config.txt文件以获取新表格
# --table-start--
dataClass=com.example.helloandroid.SchoolDataBean
@DatabaseField(generatedId = true)
tableName=schooltable
# --table-fields-start--
# --field-start--
fieldName=rollNo
generatedId=true
# --field-end--
# --field-start--
fieldName=name
indexName=simpledata_string_idx
# --field-end--
# --field-start--
fieldName=gender
# --field-end--
# --field-start--
fieldName=presence
# --field-end--
# --table-fields-end--
# --table-end--
# --table-start--
dataClass=com.example.helloandroid.CompanyDataBean
@DatabaseField(generatedId = true)
tableName=companytable
# --table-fields-start--
# --field-start--
fieldName=companyId
generatedId=true
# --field-end--
# --field-start--
fieldName=name
indexName=simpledata_string_idx
# --field-end--
# --field-start--
fieldName=designation
# --field-end--
# --field-start--
fieldName=annualPay
# --field-end--
# --table-fields-end--
# --table-end--
与我添加第二个表的第一个表类似,我相信我在Config类本身出错了。
Exception说这个
java.sql.SQLException: Could not find declared field with name 'companyId' for class com.example.helloandroid.SchoolDataBean
必须有一些方法告诉编译器第一个表已经结束并且现在要读取新表,因为它在第一个表中读取第二个表的列名。
public class CompanyDataBean {
//id is generated by the database and set on the object automagically
@DatabaseField(generatedId = true)
int companyId;
@DatabaseField(index = true)
String name;
@DatabaseField
String designation;
@DatabaseField
String annualPay;
public CompanyDataBean() {
}
public CompanyDataBean(int companyId,String name, String designation, String annualPay){
this.companyId=companyId;
this.name=name;
this.designation=designation;
this.annualPay=annualPay;
}
}
这就是我的BEAN的样子。 感谢。
答案 0 :(得分:1)
我怀疑您的配置文件中存在一些语法错误,这在您的剪切和粘贴中并不是很明显。我强烈建议您不要手动生成此文件。您需要删除这些行才能开始。
@DatabaseField(generatedId = true)
除此之外,我没有看到文件有任何问题,但您需要确保所有#
行都没有缩进。如果您将实际文件发布到http://pastebin.com/并使用网址修改您的问题,我们可能会提供更多帮助。