在Hibernate中部分加载对象

时间:2010-09-25 19:46:04

标签: java hibernate orm

我有一个课程,有时不需要完全加载。我可以部分加载它,还是需要创建轻型版本(以及它的新映射)?

例如:类Message id, title, body, author, timestamp。当我想删除消息时,我只需要两个字段id, author

1 个答案:

答案 0 :(得分:1)

  

我有一个课程,有时不需要完全加载。我可以部分加载它,还是需要创建轻型版本(以及它的新映射)?

理论上,如果使用构建时字节码检测,Hibernate可以执行延迟属性加载。见19.1.7. Using lazy property fetching。但我对此没有多少经验,如果确实需要,我倾向于选择“轻型版本”方法

  

例如:class带有id,title,body,author,timestamp的消息。当我想删除消息时,我只需要两个字段id,作者。

这可能不是最好的例子,因为你可以在这里使用bulk HQL DELETE(这通常比加载Message实例更有效,并循环它们以删除它们)。请参阅13.4. DML-style operations部分。但是如果你不能,那么加载实体来删除它就是使用ORM时要付出的代价。