2017-05-03 7 views
2

私はRealmのLinkingObjectに関するヘルプが必要です。これらの簡単なコードを見てください:私はLinkingObjectsはあなたが戻ってあなたの親に参照することができます理解して何から、今Android:RealmはLinkingObjectsを理解します

realm.beginTransaction(); 

Product prod = new Product(); 
prod.setProdId(1); 
prod.setName("Test"); 
prod = realm.copyToRealm(prod); 

ProductItem prodItem = new ProductItem(); 
prodItem.setProdId(prod.getProdId()); 
prodItem.setProdItemId(1); 
prodItem.setItemCode("00231"); 
prodItem.setPrice(9.95); 
prodItem.getProductItems().add(realm.copyToRealm(prodItem)); 

realm.commitTransaction(); 

その後
public class Product extends RealmObject 
{ 
    @PrimaryKey 
    private int prodId; 

    @Required 
    private String name; 

    private RealmList<ProductItem> productItems; 

    @LinkingObjects("productParent") 
    private final RealmResults<ProductItem> linkProductItems = null; 
    ... 
    ... 
    ... 
} 

public class ProductItem extends RealmObject 
{ 
    @PrimaryKey 
    private String primaryKey; 

    private int prodId; 

    private int prodItemId; 

    private String itemCode; 

    private double price; 

    private Product productParent; 
    ... 
    ... 
    ... 
    public Product getProductParent() 
    { 
     return productParent; 
    } 
} 

、私はこれを行うことにより、サンプルデータを追加しましたか?しかし、次のコードの意志が失敗した:

String sOutput = ""; 
for (ProductItem prodItem : realm.where(ProductItem.class).findAll()) 
    sOutput += prodItem.getProductParent().getName() + "\n"; 

問題がbqItem.getProductParent(ある) NULLです。私の質問は、私は正しくLinkingObjectsを行っている?そうでない場合は、私を助けることができますか?

おかげ

+0

あなたが試すことができ '民間tblProduct tblProductParent =新しいtblProduct()を探しています;' tblProductItemクラスで 'BanquetItem'は何ですか –

+0

?上記のコードは 'ProductItem'のものですか? – EpicPandaForce

+0

@EpicPandaForce、upsss ...申し訳ありません... LOL ...間違ったプロジェクトから間違ったコードをコピーして貼り付けます。私はコードを修正しました。それはProductItemであると考えられます。 – Sam

答えて

2

あなたは

public class Product extends RealmObject 
{ 
    @PrimaryKey 
    private int prodId; 

    @Required 
    private String name; 

    private RealmList<ProductItem> productItems; 

    //@LinkingObjects("productParent") 
    //private final RealmResults<ProductItem> linkProductItems = null; 
    ... 
    ... 
    ... 
} 

public class ProductItem extends RealmObject 
{ 
    @PrimaryKey 
    private String primaryKey; 

    private int prodId; 

    private int prodItemId; 

    private String itemCode; 

    private double price; 

    //private Product productParent;  

    @LinkingObjects("productItems") // <-- ! 
    private final RealmResults<Product> productParents = null; // <-- ! 
    ... 
    ... 
    ... 
    public RealmResults<Product> getProductParents() // <-- ! 
    { 
     return productParents; 
    } 
} 
+2

それは働いた!ありがとう@EpicPandaForce、あなたは素晴らしいパンダです! – Sam

関連する問題