2009-05-26 64 views
1

我有兩個相關的實體,說如何在Hibernate中更新與mappedBy的集合類型關係?

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

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

如果我取一個空架(無書),建立並堅持一本新書的書架,然後再獲取該架子,其藏書是空的。當我使用調試日誌記錄運行它時,我發現Hibernate不會再次搜索這個架子,它只是從會話緩存中返回,它不知道它是否已經更新了書籍集合。

我該如何擺脫效果並獲得更新的貨架狀態?

謝謝,
Artem。

+0

問題解決了嗎? – Schildmeijer 2009-06-14 08:37:38

回答

2

好像你必須在單個會話(事務)的範圍內手工維護它。 @Cascade和EAGER都不影響會話緩存

1

嘗試設置提取類型渴望書籍貨架設置:

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

我不希望它渴望。這會打擊性能很差 – artemb 2009-07-22 11:35:24

1

是@Cascade你在找什麼?

+1

聽起來像是這樣,但我無法得到它的工作。我應該使用哪種CascadeType? – artemb 2009-07-22 12:02:34

相關問題