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);
		}
	}

相关推荐