Spring MVC — работа со справочными данными из базы данных

#java #spring #spring-mvc

#ява #весна #весна-mvc #java #spring #spring-mvc

Вопрос:

У меня есть столик:

 municipality_code | municipality_name
M01               | bogo
M02               | balamban
M03               | boljoon 
  

В настоящее время у меня есть метод service, который вызывает метод repository, который возвращает Карту всех муниципалитетов. Затем служба вызывается во всех контроллерах. Это означает, что при каждом вызове службы муниципалитеты будут запрашиваться из базы данных. Я читал дальше http://springtips.blogspot.com/2008/09/lazy-loading-vs-pre-loading-beans-with.html , я в правильном направлении?

Каков наилучший способ реализовать это? Было бы лучше, если бы муниципалитеты были запрошены только один раз, например, предварительно загружены?

Комментарии:

1. В чем на самом деле заключается ваш вопрос / проблема?

2. Приношу свои извинения. Я только что отредактировал свой вопрос.

3. Было бы лучше, если бы муниципалитеты были запрошены только один раз, например, предварительно загружены?

4. Где находится очередь? Не могли бы вы, пожалуйста, уточнить более подробно.

5. @googone11 Вы хотите кэшировать результаты или что-то в этом роде?

Ответ №1:

Отложенная загрузка по сравнению с предварительной загрузкой, похоже, решает несколько иную проблему, чем та, о которой вы сообщаете: она предотвращает многократный выбор подряд, когда вы извлекаете объект, а затем извлекаете его дочерние элементы с помощью некоторых методов получения. (Отложенная загрузка сначала выдает запрос для родительского объекта, за которым следует запрос для каждого извлекаемого дочернего элемента, в то время как предварительная загрузка позволяет Hibernate выполнить один запрос для извлечения всех соответствующих дочерних элементов за один раз.)

Вам нужно извлекать один и тот же объект снова и снова и хотите предотвратить его запрос больше раз, чем необходимо (то есть, вероятно, более одного раза). Это касается механизма кэширования. Hibernate поддерживает кэширование на разных уровнях и с использованием разных стратегий. Поиск в Google «кэширование в режиме гибернации» даст вам хорошее начало.