Loading ...
Sorry, an error occurred while loading the content.

Spring - extends HibernateDaoSupport [RESOLVIDO]

Expand Messages
  • Jean Michel - MCA4 - TI - BRR
    Pessoal, Para dar fim a essa thread e para que o assunto no fique sem um desfecho para os que pesquisam no histrico da lista: Com a ajuda do Julio[ RSJUG ] meu
    Message 1 of 1 , Oct 2, 2008
    • 0 Attachment
      Pessoal,
      Para dar fim a essa thread e para que o assunto não fique sem um desfecho para os que pesquisam no histórico da lista:

      Com a ajuda do Julio[RSJUG] meu exemplo passou a funcionar. Porém meu DAO não podia estender nada nem implementar nada que parava tudo de funcionar.

      Então vasculhando a “universidade Google” achei algumas pessoas com problemas semelhantes e me dei conta que minha classe facade estava errada.
      Se o benefício de programar voltado a interfaces é promover o desacoplamento da minha classe concreta com as classes que a usam, possibilitando a troca de implementação sem impacto (hoje meu DAO é baseado no HibernateDaoSupport, amanhã posso mudar para 100% JDBC invocando procedures e depois de amanhã trocar de novo para outro framework ORM qualquer) eu não deveria ter na minha classe facade um atributo SpringDAO (que é a minha implementação atual da interface GenericDAOInterface) e sim um atributo do tipo da interface, o que me possibilitará injetar na classe facade qualquer objeto que implemente a interface, não importando quem seja ele (abstract factory). (to certo até aqui? rs)

      Então troquei a implementação da minha classe facade nesse trecho:

      private GenericDAOInterface<User, Integer> userDAO;

      public void setUserDAO(final GenericDAOInterface<User, Integer> userDAO) {
          this.userDAO = userDAO;
      }

      public
      GenericDAOInterface<User, Integer> getUserDAO() {
          return this.userDAO;
      }

      public UserFacade(GenericDAOInterface<User, Integer> userDAO) {
         
      super();
              this.userDAO = userDAO;
      }


      Clear project no Eclipse, Ctrl+Shift+X+T na minha classe UserFacadeTest e bingo! Funcionou.


      Agradeço a todos que responderam as minhas zilhares de perguntas ;) e ajudaram.



      Pela atenção obrigado.
    Your message has been successfully submitted and would be delivered to recipients shortly.