Ola pessoal, tudo certo? Bom estou implementando aqui um esquema de Respository, tenho ja la os repository para Project, tudo certinho, ai no model Project tenho o seguinte:
…
@TransientprivateProjectRepositoryrepository;publicProject(ProjectRepositoryrepository){this.repository=repository;}publicProject(){}privateProjectRepositorygetRepository(){if(repository==null){thrownewIllegalStateException("Repository was not set. You should inject it first");}returnrepository;}
,…
Pelo que entendi ele instancia isso via o iogi correto ?
Criei um CustomProvider registrei no web.xml e um RepositoryInterceptor seguindo o codigo do projeto Calopsita, mas sempre caio nessa expetion. teria algo mais para fazer ou estou totalmente errado quanto a isso tudo?
mesma coisa se vc for usar os outros componentes opcionais do vraptor
edipo_luis_federle
Legal Lucas, eu consegui fazer funcioanr par aum modelo, mas para outro nao. Tenho users e projects. no controller proejcts quando faço return currentUser.allProjects(); ele me diz que nao tenho o Repository injetado. mas o mesmo esta anotado como @component, tem alguma outra coisa para fazer?
Alguma dica?
Att
Lucas_Cavalcanti
vc tem que fazer que nem o calopsita e registrar um hibernate interceptor:
(olha o openSession)
edipo_luis_federle
Lucas, o RepositoryInterceptor.java eu criei, so o sessionCreator que nao…
edipo_luis_federle
Outra coisa tambem, porque eu consegui usar isso no Projects e nao fazer um chamada do tipo currentUser.getAllProjects() dentro do controller Projects?
att
edipo_luis_federle
Mudei + - para as confs igual do Calopsita e agora ele listou tudo correto, porem nao esta mias incluindo no banco, ele salva tipo “na sessao” o que crio mas nao persiste no DB, o que pode ser isso?
Outra duvida, para fazer igual ta no Calopsita aquele esquema de Repository, na ultima versao do VRaptor teoricamente eu so preciso regitrar o jar no web.xml ? que ele vai instanciar corretamente o repository no model? ou preciso ainda um InterceptorRepository?
Att
Lucas_Cavalcanti
ele não vai registrar o RepositoryInterceptor…
vc precisa fazer isso.
Ele serve pro hibernate fazer a injeção de dependências também, pra tudo funcionar nas queries também.
vc precisa criar o seu próprio SessionCreator
edipo_luis_federle
Certo Lucas, e como faço para não acontecer como vc disse anteriormente, de ter duas sessions ?
Lucas_Cavalcanti
vc não pode registrar o pacote do hibernate, nem o hibernateCustomProvider
edipo_luis_federle
Então teoricamente eu crio o SessionCreator( tipo tem no Calopsita) e nao registreo nada de hibernate no web.xml ? Correto ?
Lucas_Cavalcanti
isso… vc vai precisar criar o sessionFactorycreator e o HibernateTransactionInterceptor também… (pode criar só uma classe que estende as do VRaptor, anotada com @Component e @Intercepts, respectivamente)
edipo_luis_federle
Certo Lucas, irei tentar hoje a noite isso, qualquer coisa posto aqui o que aconteceu, obrigado por hora.
renanreismartins
sei que é antigo, mas…
entendi a abordagem tomada no calopsita. Porém gostaria que a dependencia fosse injetada na construção do objeto. Por exemplo, mando uma request passando os dados para o controller o controller vai instanciar aquele objeto, então dentro do obj poderia ter meu repositorio injetado.