web-dev-qa-db-ja.com

ORMlite Android外部キーのサポート

私はORMliteのドキュメントに精通していません。このパラメータが外部キーであることをクラスで宣言することは可能ですか?

例えば私はテーブル顧客を持っています:

@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は、テーブルAccountsのDatabaseField名を対象にする必要があります。どうやってするか?私はパラメータforeign = trueのみを見つけましたが、どのパラメータとそれがどのテーブルから表すかについては何もありません。

ありがとう

17
Waypoint

AccountNameHolderは、テーブルAccountsのDatabaseField名を対象にする必要があります。どうやってするか?

何が必要か正確にはわかりませんが、外部フィールドを名前ではなく実際のtypeに変更する必要があるかもしれません。

@DatabaseField(foreign = true)
private Account account;

内部的には、 ORMLiteaccount_idフィールド(おそらく文字列名)をCustomerテーブルに格納しますが、それについて心配する必要はありません。 Customerをクエリすると、Accountフィールドに設定されているaccountにはidフィールドが設定されていることに注意してください。 ORMLiteでアカウントも検索するには、foreignAutoRefresh=trueを設定する必要があります。

@Lalitが指摘したように、このテーマに関するいくつかのドキュメントがあります。ドキュメントに長い時間を費やしてきたので、役立つはずです。

また、いくつかの 外部フィールドに関するサンプルコード があります。

お役に立てれば。