Предупреждение за хибернация за последващо заключване с помощта на Oracle 10g

Използвам Hibernate 4.3.0.Final / JPA 2.1, Hibernate Search 4.5.0.Final работи на WildFly 8.0.0.Final. Приложението ми работи абсолютно добре, но получавам това предупреждение за хибернация, когато се създават индексите.

WARN 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