2009-05-26 13 views
1

私は2つの関連するエンティティを持って、私は、空の棚(なし冊)をフェッチシェルフに新しいブックを作成し、持続し、再びその棚をフェッチする場合は、その図書のコレクションが空であるHibernateでmappedByとコレクション型の関係を更新するには?

@Entity 
public class Book { 
    @ManyToOne 
    Shelf shelf; 
} 

@Entity 
public class Shelf { 
    @OneToMany(mappedBy="shelf") 
    Set<Book> books; 
} 

を言います。私がデバッグロギングでそれを実行すると、Hibernateはシェルフを2回目に検索しないことを知っています。セッションキャッシュから返すだけです。そこには帳集が更新されていることがわかりません。

効果を取り除き、シェルフの最新状態を取得するにはどうすればよいですか?

ありがとう、
Artem。

+0

問題が解決しましたか? – Schildmeijer

答えて

2

1つのセッション(トランザクション)の範囲で手作業で管理しなければならないようです。 @CascadeもEAGERもセッションキャッシュに影響しません

1

はシェルフに設定書籍のEAGERフェッチ・タイプを設定してください:

@Entity 
public class Shelf { 
    @OneToMany(mappedBy="shelf",fetch=FetchType.EAGER) 
    Set<Book> books; 
} 
+0

私はそれが熱望したくありません。それは性能がひどく損なわれる – artemb

1

は、あなたが探しているものを@Cascadeですか?

+1

それはそれのように聞こえるが、私はそれを働かせることはできない。どのCascadeTypeを使用しますか? – artemb

+0

カスケードはここでは役に立ちません –

関連する問題