Как кэшировать редко изменяемый объект «многие к одному» в CF ORM?

Как кэшировать в CF ORM редко изменяемую сущность «многие к одному», например, userType, где всего ‹ 10 типов? Я не хочу, чтобы дополнительный выбор получил имя типа.

ЭхКэш? Какой-либо XML нужно сначала настроить? Что-нибудь, что мне нужно добавить в cfproperty «многие к одному»?

Спасибо.


person Henry    schedule 03.08.2010    source источник


Ответы (2)


Если UserType является компонентом, вы указываете cacheuse="read-only" cachename="UserType" в определении компонента. только для чтения является самым быстрым и подходит для случаев, подобных описанному вами.

По моему опыту, простое указание значения кеша для свойства в компоненте-владельце не вызывало ожидаемого кэширования... Мне нужно было указать его непосредственно в кэшируемом компоненте.

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

ormEvictEntity("ТипПользователя");

person marc esher    schedule 03.08.2010
comment
О, Генри, не нужно настраивать XML. Это просто работает, когда вы добавляете эти атрибуты компонента - person marc esher; 03.08.2010
comment
В самом деле? Я думал, что есть какой-то XML для включения кеша уровня 2 для Hibernate или что-то в этом роде? - person Henry; 03.08.2010
comment
Что ж, за этим стоит XML, но вам не нужно ничего делать, чтобы его включить. Каким бы ни было имя кеша — указываете ли вы его в атрибуте компонента или оно получено из имени объекта — CF создаст для вас новую область кеша в этом XML-файле. - person marc esher; 03.08.2010

Добавьте это к вашему много-ко-многим, чтобы заставить его загружать дочерние элементы при заполнении сущности.

   lazy="false"
person jarofclay    schedule 03.08.2010
comment
Спасибо, но это не то, что я ищу, мне ДЕЙСТВИТЕЛЬНО нужно имя типа, просто я не хочу, чтобы выбор был запущен. - person Henry; 03.08.2010