могу я говорить Быть в спящем режиме, класс неизменен, таким образом, он совместно использует объекты сохранить стоимость конструкции?

Некоторые проблемы с атрибутами:

  • атрибуты не могут содержать несколько значений (дочерние элементы могут)
  • , атрибуты не легко расширяемы (для будущих изменений)
  • , атрибуты не могут описать структуры (дочерние элементы могут)
  • , атрибутами более трудно управлять кодом программы
  • , значения атрибута не легко протестировать против DTD

, Если Вы используете атрибуты в качестве контейнеров для данных, Вы заканчиваете с документами, которые трудно прочитать и поддержать. Попытайтесь использовать элементы для описания данных. Используйте атрибуты только для предоставления информации, которая не относится к данным.

не заканчиваются как это (это не то, как XML должен использоваться):

 

Источник: http://www.w3schools.com/xml/xml_dtd_el_vs_attr.asp

5
задан PanCrit 6 November 2009 в 00:44
поделиться

2 ответа

Вы можете сообщить Hibernate, что конкретная сущность неизменна, используя @Entity (mutable = false) или @Immutable аннотации. Обратите внимание, что оба являются расширениями Hibernate для стандарта JPA.

Это , а не , однако, заставит Hibernate повторно использовать объекты - это просто позволит немного оптимизировать производительность, так как что касается кеширования / промывки. Компоненты также не могут быть аннотированы таким образом.

Чтобы сделать то, что вы хотите, вам придется написать свой собственный тип; тогда вы сможете иметь предопределенные экземпляры для определенных (наиболее распространенных) значений и возвращать их вместо создания нового экземпляра.

Другой альтернативой является определение PreLoadEventListener для этого;

8
ответ дан 14 December 2019 в 04:41
поделиться

Воспользуйтесь преимуществами кеш-памяти второго уровня Hibernate. Для неизменяемых объектов, подобных тем, которые вы описали, вы захотите использовать стратегию кеширования только для чтения. Я использовал кеш второго уровня в нескольких приложениях, и это значительно улучшило производительность. Стоит потратить время, чтобы по-настоящему понять последствия кэширования, поэтому я настоятельно рекомендую вам прочитать документацию по Hibernate по кешу второго уровня:

Кэш второго уровня Hibernate

0
ответ дан 14 December 2019 в 04:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: