Предупреждение Hibernate о последующей блокировке с использованием Oracle 10g

Я использую Hibernate 4.3.0.Final/JPA 2.1, Hibernate Search 4.5.0.Final, работающий на WildFly 8.0.0.Final. Мое приложение работает абсолютно нормально, но я получаю предупреждение о переходе в спящий режим при создании индексов.

ПРЕДУПРЕЖДЕНИЕ org.hibernate.loader.Loader — HHH000444: Обнаружен запрос на блокировку, однако диалект сообщает, что база данных предпочитает, чтобы блокировка выполнялась в отдельном выборе (последующая блокировка); результаты будут заблокированы после выполнения первоначального запроса

Это метод, который создает индекс:

public void createIndex() throws DAOException {
    FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(this.entityManager);

    try {
        fullTextEntityManager.createIndexer(Colaborador.class)
            .purgeAllOnStart(Boolean.TRUE)
            .optimizeOnFinish(Boolean.TRUE)
            .startAndWait();
        }
        catch (InterruptedException e) {
            logger.error("Error creating index", e);
            throw new DAOException(e);
    }
}

Я провел несколько поисков и нашел «решение» или, лучше сказать, способ подавить предупреждение. Однако я не знаю, является ли это лучшим решением. Решение предлагает расширить org.hibernate.dialect.Oracle10gDialect и переопределить метод public boolean useFollowOnLocking(), чтобы вернуть false.

Другая важная вещь: это происходит только после версии Hibernate 4.2.0.Final. До этой версии не существовало метода useFollowOnLocking().

Новый диалект:

import org.hibernate.dialect.Oracle10gDialect;

public class MyOracle10gDialect extends Oracle10gDialect {

    @Override
    public boolean useFollowOnLocking() {
        return false;
    }
}

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


person humungs    schedule 28.03.2014    source источник


Ответы (1)


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

Я открыл HHH-9097.

person Sanne    schedule 31.03.2014