Будьте в спящем режиме 2-е аннулирование кэша уровня, когда другой процесс изменит базу данных

Я также предложил бы нет, но не бросать в камне...

После молитвы OO, Ваша система именования должна лучше всего представить основные объекты, которые код, как предполагается, инкапсулирует. Не должно действительно быть никакого 'метаязыка', связанного с фактическим синтаксическим составом предпочтительного языка программирования там.

Тем не менее, если Ваш объект действительно абстрактен и Вы действительно не видите, что он изменяется в ближайшее время, существует аргумент, что добавление 'Основы' помогает с общей удобочитаемостью.

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

основа, используемая где-нибудь еще?

25
задан Dougnukem 22 October 2009 в 14:36
поделиться

2 ответа

Based on ChssPly76's comments here's a method that evicts all entities from 2nd level cache (we can expose this method to admins through JMX or other admin tools):

/**
 * Evicts all second level cache hibernate entites. This is generally only
 * needed when an external application modifies the game databaase.
 */
public void evict2ndLevelCache() {
    try {
        Map<String, ClassMetadata> classesMetadata = sessionFactory.getAllClassMetadata();
        for (String entityName : classesMetadata.keySet()) {
            logger.info("Evicting Entity from 2nd level cache: " + entityName);
            sessionFactory.evictEntity(entityName);
        }
    } catch (Exception e) {
        logger.logp(Level.SEVERE, "SessionController", "evict2ndLevelCache", "Error evicting 2nd level hibernate cache entities: ", e);
    }
}
15
ответ дан 28 November 2019 в 21:23
поделиться

SessionFactory has plenty of evict() methods precisely for that purpose:

sessionFactory.evict(MyEntity.class); // remove all MyEntity instances
sessionFactory.evict(MyEntity.class, new Long(1)); // remove a particular MyEntity instances
11
ответ дан 28 November 2019 в 21:23
поделиться
Другие вопросы по тегам:

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