Hibernate的强制加载策略
在hibernate的使用场景中,有的关联对象不需要立即查出,这样可使用fetch="FetchType.LAZY"策略,当需要立即需要特定对象时,可使用hibernate的强制加载策略方法 initialize(Proxy object),其实就是初始化对象的代理,比如在编辑页面里lazy=true,在查看页面里 lazy=false,就要用到强制加载。
/** * 获取Prescription中其他扩展属性对象。 * * @param result */ private void initializeProperties(PaginationSupport<Prescription> result) { List<Prescription> items = result.getItems(); if (items != null && !items.isEmpty()) { List<Prescription> persistenceList = new ArrayList<Prescription>( items.size()); for (Prescription prescription : items) { Hibernate.initialize(prescription.getOffice()); Hibernate.initialize(prescription.getDoctor()); Hibernate.initialize(prescription.getDoctor().getOffice()); Hibernate.initialize(prescription.getHospitalDistrict()); Hibernate.initialize(prescription.getPatient()); persistenceList.add(prescription); } result.setItems(persistenceList); } }