2017-04-05 8 views
0

私はSet型のフィールドをいくつか持つエンティティを持っています。エンティティをデータベースから取得するとき、データベース内の関連が正しいにもかかわらず、セットは常に空です。永続セットがHibernateで空です

@Valid 
@NotNull 
@OneToMany(fetch = FetchType.EAGER) 
private Set<Location> locations; 

私はそれが実体をretrivesが、それは常に空だときassocationsをロードするために休止状態を強制的にフェッチ熱心可能しようとしています。コレクション以外の種類のフィールドには、正しく入力されます。

私はこれまでに休止状態でこれを見たことがない、何か間違っていますか?あなたは@OneToManycascadeを追加する必要があること

答えて

1

ない100%が、99%は必ず

おかげ - デフォルトのカスケードはあなたのエンティティを永続化する場合は、Locationコレクションが永続化されないことを意味し、まったくカスケードではありません..

これを試してみてください:つまり

@Valid 
@NotNull 
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL) 
private Set<Location> locations; 

をあなたの問題がフェッチされていないコレクションではありませんが、それはあなたがanythiを見ました(最初の場所に永続化されていないこと

編集 - 私はあなたがアソシエーションが正しいと書いたことを確認しましたので、あなたのLocationオブジェクトを別に保持しますか?

0

私はmappedBy属性を見逃したと思います。フィールド名は、場所エンティティにおける参照フィールドの名前でなければなりません

@OneToMany(fetch = FetchType.EAGER, mappedBy="fieldname") 

関連する問題