Сеанс Dropwizard в режиме сна, ленивая загрузка - PullRequest
0 голосов
/ 08 ноября 2018

У меня возникает следующая проблема: когда я выбираю свой основной класс (Account) в своем аутентификаторе, а затем внедряю его с аннотацией @Auth, я не могу получить какие-либо лениво загруженные атрибуты с помощью hibernate, поскольку я получаю исключение, указывающее на отсутствие доступного сеанса.

@UnitOfWork
@PermitAll
@GET
public Response fetchCharacters(@Auth Account account) {
    List<Character> chars = account.getCharacters();
    return Response.status(Status.OK).entity(chars).build();
}

Если я использую дополнительный класс DAO, он работает нормально

@UnitOfWork
@PermitAll
@GET
public Response fetchCharacters(@Auth Account account) {
    List<Character> chars = dao.getCharacters(account);
    return Response.status(Status.OK).entity(chars).build();
}

и хотя я мог сделать это по причине, потому что это только очень маленький недостаток, мне было интересно, почему это не работает, как я ожидал. Я получаю, что сеанс, очевидно, закрывается после извлечения принципала в аутентификаторе, но почему новый сеанс открывается для DAO, а не для спящего режима с отложенным доступом? И есть ли способ это исправить или это так, как задумано?

...