我想知道是否有办法在nHibernate中禁用子记录的自动加载(对于一个:许多关系).
我们可以轻松地关闭属性上的延迟加载,但我想要的是禁用任何类型的自动加载(懒惰和非懒惰).我只想通过查询加载数据(即HQL或Criteria)
我仍然希望在映射文件中定义父子记录之间的关系以促进HQL并能够加入父子实体,但我不希望子记录作为父记录的一部分加载,除非查询父记录明确指出(通过急切获取等).
示例:从数据库中获取部门记录不应从数据库中获取所有员工记录,因为可能永远不需要它.
这里的一个选项是将Department上的Employees集合设置为延迟加载.这种方法的问题在于,一旦将对象提供给调用API,它就可以"触摸"延迟加载属性,并从db中获取整个列表.
我试图使用'evict' - 断开对象,但它似乎并不总是在工作,并且不会对对象进行深度驱逐.另外,它使用代理类抽象延迟加载的属性类型,该代理类稍后在代码中播放,我们尝试通过反射对对象进行操作,并且在对象上遇到未消除的类型.
我是nHibernate的初学者,任何指针或帮助都会有很大的帮助.