Хотел бы получить ваш совет по поводу моей проблемы.
Итак, у меня есть интерфейс 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));
}