ORMlite Android外键支持

时间:2012-01-25 12:13:20

标签: android foreign-keys ormlite

我对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,但没有任何关于,哪个参数以及它代表的表。

由于

1 个答案:

答案 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

希望这有帮助。