我有一个课程,有时不需要完全加载。我可以部分加载它,还是需要创建轻型版本(以及它的新映射)?
例如:类Message
id, title, body, author, timestamp
。当我想删除消息时,我只需要两个字段id, author
。
答案 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时要付出的代价。