我有一张桌子:
municipality_code | municipality_name
M01 | bogo
M02 | balamban
M03 | boljoon
目前,我有一个调用存储库方法的服务方法,该方法返回所有市镇的Map。然后在所有控制器中调用该服务。这意味着,每次调用服务时,都会从数据库中查询市政当局。我正在http://springtips.blogspot.com/2008/09/lazy-loading-vs-pre-loading-beans-with.html阅读,我正朝着正确的方向前进?
实现此目的的最佳方法是什么? 如果市政当局只需要查询一次,例如,预装?
答案 0 :(得分:0)
延迟加载与预加载似乎解决了与您报告的问题略有不同的问题:当您检索实体然后通过某些getter方法检索其子项时,它会阻止连续多次选择。 (延迟加载将首先发出父实体的查询,然后查询每个被检索的子项,而预加载使Hibernate能够发出单个查询以一次性检索所有相关的子项。)
您需要一遍又一遍地检索同一个实体,并希望防止它被查询的次数超过必要(可能不止一次)。这是缓存机制的一种情况。 Hibernate支持不同级别和不同策略的缓存。用Google搜索"hibernate caching"会给你一个良好的开端。