我在"hibernate in action"一书中看到了以下陈述.任何人都可以告诉我如何在运行时覆盖策略.并且你可以采取相反的方式,即我已经获取策略设置懒惰为假,我想将其设置为真?
"延迟提取允许您决定在第一次数据库命中时加载了多少对象图,以及只有在首次访问时才应加载哪些关联.延迟提取是对象持久性的基本概念,也是实现可接受性能的第一步.我们建议,首先,所有关联都要配置为在映射文件中进行延迟(或者可能是批处理的延迟)获取.然后可以在运行时通过迫使急切提取的查询来覆盖此策略."
当我有以下查询时,它会给我一个产品列表.
List<Product>=
getCurrentSession().createQuery("SELECT p FROM Product p ").list();
Run Code Online (Sandbox Code Playgroud)
如果有以下联接,它会返回什么?
getCurrentSession().createQuery("SELECT p FROM Product p inner join ProductCategory pc where p.id=pc.id").list();
Run Code Online (Sandbox Code Playgroud)