2010-09-25 82 views
1

我有一個類,有時不需要加載完全。我可以部分加載它,還是需要創建類的輕量級版本(以及新的映射)?休眠部分對象加載

例如:類Messageid, title, body, author, timestamp。當我想刪除郵件時,我只需要兩個字段id, author

回答

1

我有一個類,有時不需要加載完全。我可以部分加載它,還是需要創建類的輕量級版本(以及新的映射)?

從理論上講,Hibernate可以,如果你使用運行時字節碼做懶加載財產。見19.1.7. Using lazy property fetching。但我沒有太多的經驗,我傾向於更喜歡「輕型版本」的方法,如果真的需要。

例如:類帶有ID,標題,正文,作者,時間戳的消息。當我想刪除郵件時,我只需要兩個字段id,author。

這可能不是最好的例子,你也許可以使用bulk HQL DELETE這裏(這不是加載Message實例和循環在他們刪除它們更有效的是在一般)。請參閱部分13.4. DML-style operations。但是,如果你不能,那麼加載一個實體來刪除它是使用ORM支付的代價。