rotilho  
          
              
                Setembro 22, 2011,  8:17pm
               
              #1 
           
         
        
          Pessoal,
Boa noite! Estou batendo cabeça a um tempo tentando resolver um impasse em um Listener do Hibernate.
Essencialmente o que estou tentando fazer é acessar o UserInfo , um componente @SessionScoped DefaultSaveOrUpdateEventListener  do Hibernate. Como não posso alterar o construtor do meu listener tentei injetar com o Spring o UserInfo , mas não obtive sucesso.
Por acaso alguém teria uma luz?
         
        
           
         
            
       
      
        
        
          não dá pra fazer isso, pq não é o Vraptor ou o Spring que vão instanciar o listener, e sim o hibernate…
vc só consegue pegar um objeto qqer usando algum tipo de acesso estático, infelizmente…
vc pode criar o seu próprio, ou usar um que o VRaptor tem (não use em casos normais)
UserInfo info = (UserInfo) VRaptorRequestHolder.currentRequest().getRequest().getSession().getAttribute("userInfo");(a request atual, e pegando o userInfo a partir da session diretamente)
só cuidado que se vc usar esse listener fora de um request o currentRequest vai vir null
         
        
           
         
            
       
      
        
        
          Interessante…
Lucas, com VRaptorRequestHolder  é possível obter qualquer objeto gerenciado pelo VRaptor?
         
        
           
         
            
       
      
        
        
          não, só escopo de request e de session (geralmente é o nome da classe com a primeira minúscula, num atributo de request ou session)…
         
        
           
         
            
       
      
        
        
          Muito bom saber, isso é o tipo de coisa que tem que ter um aviso “Use com moderação”.  
         
        
           
         
            
       
      
        
          
          
            rotilho  
          
              
                Setembro 24, 2011,  2:51pm
               
              #6 
           
         
        
          [quote=Lucas Cavalcanti]não dá pra fazer isso, pq não é o Vraptor ou o Spring que vão instanciar o listener, e sim o hibernate…
vc só consegue pegar um objeto qqer usando algum tipo de acesso estático, infelizmente…
vc pode criar o seu próprio, ou usar um que o VRaptor tem (não use em casos normais)
UserInfo info = (UserInfo) VRaptorRequestHolder.currentRequest().getRequest().getSession().getAttribute("userInfo");(a request atual, e pegando o userInfo a partir da session diretamente)
só cuidado que se vc usar esse listener fora de um request o currentRequest vai vir null[/quote]
Funcionou! Muito obrigado @Lucas  
         
        
           
         
            
       
      
        
        
          NO VRAPTOR 4 O “VRaptorRequestHolder” FOI REMOVIDO. O QUE DEVO FAZER PARA PEGAR INFORMAÇÕES DA SESSÃO AGORA?