我将如何使用延迟加载在我的 flex 应用程序中加载我的实体。我有一个深度对象图
问问题
569 次
2 回答
0
AFAIK 这是不可能的。您应该打开休眠会话来执行此操作。在我的项目中,我正在以这种方式做你需要的事情:
我有这样的春季服务:
public interface SomeObjectManager {
List<SomeObject> getObjects(); // here we have lazy loading for SomeObject's properties
SomeObject getFullObject(long objectId); // here we're loading full object
}
SomeObject 的某些属性使用延迟加载。要加载它们,我使用这样的 HQL 查询:
SELECT s FROM SomeObject s
LEFT JOIN FETCH s.child children
LEFT JOIN FETCH children.items items
LEFT JOIN FETCH items.property
WHERE s.id=:id
此查询强制休眠加载定义为惰性的属性。
因此,如果您不需要完全加载 SomeObject 实例,您可以使用 getObjects() 方法。如果您需要有关具体 SomeObject 实例的详细信息,请使用 getFullObject() 方法。
希望这可以帮助。
于 2011-09-16T12:27:47.527 回答