1

GreenDAO を使用してデータベースにエンティティを作成しようとしています。私のオブジェクトはこのクラスで定義されています:

public class Container {
    String id; //GUID
    String name;
    Product product;
}

public class Product {
    String urlImage;
    String productName;
    String description;
}

次のコードは私のエンティティを定義しています:

Entity container = schema.addEntity("Container");
Property productsForeignKey = container.addStringProperty("id").notNull().unique().getProperty(); 
container.addStringProperty("name");

Entity product = schema.addEntity("Product");
product.addStringProperty("productName");
product.addStringProperty("urlImage");
product.addStringProperty("description");

containerToProduct = container.addToOne(product, productsForeignKey);

最後に、私はこの例外を受け取ります:

java.lang.RuntimeException: Currently only single FK columns are supported: ToOne 'product' from Container to Product

私が間違っていることは何ですか?

4

1 に答える 1

0

コンテナの主キーを製品の外部キーとして使用することで解決しました。String Foreign Key は適切な選択ではないことがわかりました。したがって、私の解決策は次のようになります。

Entity container = schema.addEntity("Container");
Property productsForeignKey = container.addLongProperty("newId").primaryKey().autoincrement().getProperty(); 
container.addStringProperty("name");

Entity product = schema.addEntity("Product");
product.addStringProperty("productName");
product.addStringProperty("urlImage");
product.addStringProperty("description");

containerToProduct = container.addToOne(product, productsForeignKey);

ここで、newId は便宜上使用される単なるランダム フィールドです。

于 2015-10-15T09:01:39.563 に答える