假设我有两个Java POJO:大学和学生。 “大学”包括学生名单。
该集合在hibernate映射文件中标记为延迟加载。 因此,如果我从hibernate收到“大学”对象,则在交易结束后我无法访问学生列表。
对我来说这是个问题,因为在某些情况下(并非每个!)都需要访问此列表。如果我将在我的应用程序的数据库层中完成所有工作,这将没有问题。但是你可以想象:该层只负责CRUD任务。 在业务层中进行更改。因此,如果业务层接收到该对象,则该事务已经关闭。
这是什么最佳做法?
答案 0 :(得分:0)
一个解决方案是Open Session View。您也可以通过在关闭会话之前调用getters / iterating through child collection来初始化子实体。