Dropwizard hibernate session aware lazy loading











up vote
0
down vote

favorite












I have following issue that when I fetch my principal class (Account) in my authenticator and then inject it with the @Auth annotation I'm not able to fetch any lazy loaded attributes with hibernate as I'm getting an exception indicating that there is no session avaliable.



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


If I use an extra DAO class it's working fine



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


and while I could do that of cause as it's only a very small drawback I was wondering why this is not working as I'd expect it.
I get that the session is obviously closed after fetching the principal in the authenticator, but why is a new session opened for a DAO but not for a hibernate lazy fetch? And is there a way to fix it or is that just as intended?










share|improve this question


























    up vote
    0
    down vote

    favorite












    I have following issue that when I fetch my principal class (Account) in my authenticator and then inject it with the @Auth annotation I'm not able to fetch any lazy loaded attributes with hibernate as I'm getting an exception indicating that there is no session avaliable.



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


    If I use an extra DAO class it's working fine



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


    and while I could do that of cause as it's only a very small drawback I was wondering why this is not working as I'd expect it.
    I get that the session is obviously closed after fetching the principal in the authenticator, but why is a new session opened for a DAO but not for a hibernate lazy fetch? And is there a way to fix it or is that just as intended?










    share|improve this question
























      up vote
      0
      down vote

      favorite









      up vote
      0
      down vote

      favorite











      I have following issue that when I fetch my principal class (Account) in my authenticator and then inject it with the @Auth annotation I'm not able to fetch any lazy loaded attributes with hibernate as I'm getting an exception indicating that there is no session avaliable.



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


      If I use an extra DAO class it's working fine



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


      and while I could do that of cause as it's only a very small drawback I was wondering why this is not working as I'd expect it.
      I get that the session is obviously closed after fetching the principal in the authenticator, but why is a new session opened for a DAO but not for a hibernate lazy fetch? And is there a way to fix it or is that just as intended?










      share|improve this question













      I have following issue that when I fetch my principal class (Account) in my authenticator and then inject it with the @Auth annotation I'm not able to fetch any lazy loaded attributes with hibernate as I'm getting an exception indicating that there is no session avaliable.



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


      If I use an extra DAO class it's working fine



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


      and while I could do that of cause as it's only a very small drawback I was wondering why this is not working as I'd expect it.
      I get that the session is obviously closed after fetching the principal in the authenticator, but why is a new session opened for a DAO but not for a hibernate lazy fetch? And is there a way to fix it or is that just as intended?







      java hibernate dropwizard






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 8 at 8:26









      Fussel

      57112




      57112





























          active

          oldest

          votes











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














           

          draft saved


          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53203879%2fdropwizard-hibernate-session-aware-lazy-loading%23new-answer', 'question_page');
          }
          );

          Post as a guest





































          active

          oldest

          votes













          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes
















           

          draft saved


          draft discarded



















































           


          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53203879%2fdropwizard-hibernate-session-aware-lazy-loading%23new-answer', 'question_page');
          }
          );

          Post as a guest




















































































          Popular posts from this blog

          Schultheiß

          Liste der Kulturdenkmale in Wilsdruff

          Android Play Services Check