Сессия / EntityManager закрыт и неожиданный доступ к базе данных - PullRequest
0 голосов
/ 12 июля 2020

Хотел бы получить ваш совет по поводу моей проблемы.

Итак, у меня есть интерфейс angular, который вызывает мой некоторый backend api. Один из них - это мой API, который получает список людей. сначала я не получаю никаких проблем .. но когда я обновляю sh мою angular страницу в браузере, нажимая F5. Я получаю эту ошибку.

То же самое при использовании почтальона.

Вызвано: java .lang.IllegalStateException: Session / EntityManager закрыт 2020-07-13 03: 33: 54,324 ОШИБКА [org.hib.AssertionFailure] (поток-исполнитель-1) HHH000099: произошла ошибка утверждения (это может указывать на ошибку в Hibernate, но более вероятно из-за небезопасного использования сеанса): org. hibernate.AssertionFailure: неожиданный доступ к базе данных 2020-07-13 03: 33: 54,331 ОШИБКА [org.jbo.res.res.i18n] (поток-исполнитель-1) RESTEASY002020: необработанное асинхронное исключение, отправка 500: org. hibernate.AssertionFailure: неожиданный доступ к базе данных

public Uni<List<Person>> getAll(){
        return this.mutinySession
                .flatMap(session -> session.createNamedQuery("Person.findAll",Person.class)
                        .getResultList())
                .onFailure().invoke(ex-> new PersonException(ex.getMessage(), ALL_FETCH));
}

public Uni<Person[]> getAll(String sort, String order, Long pageNumber,Integer size){
        return this.mutinySession
                .flatMap(session -> {
                    var sql = "SELECT * " +
                            "FROM PERSON ORDER by :sort " + order + " " +
                            "OFFSET ( :size * ( (:pageNumber) - 1)) ROWS " +
                            "FETCH NEXT :size ROWS ONLY";
                    return session.createNativeQuery(sql,Person.class)
                            .setParameter("sort",sort)
                            .setParameter("pageNumber",pageNumber + 1)
                            .setParameter("size",size)
                            .getResultList();
                })
                .map(persons -> persons.toArray(new Person[persons.size()]))
                .onFailure().invoke(ex-> new PersonException(ex.getMessage(),ALL_FETCH));
 }
...