2010-11-18 11 views
5

私は以下のデータ構造を持っています。私は、デバイスを作成する項目を追加し、このすべてを保存することができますJPA @OneToManyと@ManyToOne:バックリファレンスはnullです

class Item { 
    private Device; 
@ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH}) 
public Device getDevice() { 
    return device; 
} 
} 

@Entity 
public class Device extends AbstractEntity implements Serializable{ 
    private int id; 
    //... 
    private List<Item> items; 

    @OneToMany(fetch=FetchType.EAGER) 
    public List<Item> getItems() { 
return configurationItems; 
    } 
} 

各項目は、デバイスへの参照をバック含まれています。私はDBからオブジェクトを取得することができ、アイテムが保持するデバイスへの参照を除いてすべてが機能しています。

そして、私が項目を読んでくださいどのように重要ではありません。すべての関連する項目 2.読み取り項目

デバイスを参照して 1.読み取りデバイスは常にnullです。私は何かが私の注釈@ManyToOneで間違っていると思う。

私はHibernateDaoSupportをサブクラス化してDAOを実装して、HibernateとSpringを使用しています。ここで

は、すべてのアイテムを取得するコードの例です:

getHibernateTemplate().loadAll(Item.class) 

答えて

7

あなたは双方向の1対多のrelathionshipを持っているので、あなたがmappedByを使用する必要があります。

@OneToMany(fetch=FetchType.EAGER, mappedBy = "device") 
public List<Item> getItems() { 
    return configurationItems; 
} 

も参照してください:

+0

ありがとうございました。私はそれが今働くと信じています。 – AlexR

関連する問題