我对ORMlite文档并不聪明。可以在类中声明,这个参数是外键吗?
e.g。我有桌子顾客:
@DatabaseTable(tableName = "customer")
public class Customer {
@DatabaseField(id = true)
private String customerName;
@DatabaseField
private String customerSurname;
@DatabaseField(foreign = true)
private String accountNameHolder;
@DatabaseField
private int age;
public Customer() {
}
}
AccountNameHolder应该针对表帐户中的DatabaseField名称。怎么做?我发现只有参数foreign = true,但没有任何关于,哪个参数以及它代表的表。
由于
答案 0 :(得分:40)
AccountNameHolder应该针对表帐户中的DatabaseField名称。怎么做?
我不确定你想要什么,但可能你应该将你的外国字段改为实际的类型而不是名字:
@DatabaseField(foreign = true)
private Account account;
在内部,ORMLite会在account_id
表中存储Customer
字段(可能是字符串名称),但您不必担心。请记住,当您查询Customer
时,Account
字段中设置的account
只会设置ID字段。要让ORMLite也查找帐户,您需要设置foreignAutoRefresh=true
。
正如@Lalit所指出的,这里有一些关于这个主题的文档。我们花了很长时间在文档上,所以它应该有用。
此外,还有一些example code about foreign fields。
希望这有帮助。