Hibernate: словарь сущностей (хранение в памяти) - PullRequest
0 голосов
/ 25 января 2011

Словари - обычное дело при использовании чистого SQL.Просто сохраните некоторые статические таблицы (редко обновляемые записи - например, типы, список городов и т. Д.) В памяти и обновите при необходимости - очень хороший подход, потому что вы не создали тонны соединений и привязки свойств ...

А как насчет Hibernate с его сессиями, транзакциями, версиями и т. Д.?Позволяет ли он создать такой словарь?

PS .Самое интересное - переходные объекты.Из-за количества различных сеансов и транзакций, где будут использоваться словари.Поэтому каждый раз, когда мы получаем объект из словаря, мы должны вызывать merge () , но не будет ли он взаимодействовать с БД?

Ответы [ 2 ]

4 голосов
/ 25 января 2011

Hibernate обеспечивает отображение только для чтения: mutable = false (или добавьте @Immutable в ваш класс). Это должно привести к меньшему потреблению памяти.

И вы можете включить кэширование для этого класса.

1 голос
/ 25 января 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...