[Logo] Mentawai Forum - Mentawai Web Framework
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 
Tentando Hibernate Direto...  XML
Forum Index -> Comentários Gerais Go to Page: Previous  1, 2, 3 Next 
Author Message
andre_guitar7


[Avatar]

Joined: 21/03/2006 12:03:21
Messages: 259
Location: Curitiba - PR
Offline

saoj wrote:
O próprio comentário no código acima está dizendo o que esses filtros fazem, só que está em ingles.

É fundamental entender bem IoC e DI, não só para o Mentawai, mas para a sua vida.
 


Poisé... agora que eu to vendo o conceito de IoC... eu já usava mas não sabia que tinha um nome definido, hehe...
andre_guitar7


[Avatar]

Joined: 21/03/2006 12:03:21
Messages: 259
Location: Curitiba - PR
Offline

Nesse exemplo:

Code:
        ac.addFilter(new IoCFilter(c1, "talker1", IoCFilter.ACTION));
         ac.addFilter(new IoCFilter(c2, "talker2", IoCFilter.SESSION));
         ac.addFilter(new IoCFilter(c2, "talker3", IoCFilter.APPLICATION));


Qual é a diferença entre IoCFilter.ACTION, IoCFilter.SESSION, IoCFilter.APPLICATION? Ao meu ver, isso parece ser a duração, ou tempo de vida, de uma variável ou objeto numa aplicação, é isso?
andre_guitar7


[Avatar]

Joined: 21/03/2006 12:03:21
Messages: 259
Location: Curitiba - PR
Offline

Nesse exemplo, vc faz referência a uma classe JdbcTransaction.class... aonde posso consegui-la para ver a implementação dela? Essa classe implementa a org.mentawai.transaction.Transaction, né?

Muito obrigado...
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

Acabei de colocar o primeiro FAQ do mentawai sobre IoC.

É mais um mini-tutorial.

Dá uma olhada aqui:

http://forum.mentaframework.org/posts/list/193.page

Sergio Oliveira

andre_guitar7


[Avatar]

Joined: 21/03/2006 12:03:21
Messages: 259
Location: Curitiba - PR
Offline

saoj wrote:
Acabei de colocar o primeiro FAQ do mentawai sobre IoC.

É mais um mini-tutorial.

Dá uma olhada aqui:

http://forum.mentaframework.org/posts/list/193.page 




Valew, pelo que entendi:

Code:
	private Component pessoaDAO;
 	
 	public void init(){		
 		this.pessoaDAO = new DefaultComponent( HibernatePessoaDAO.class );
 	}


Crio um componente que agora é um HibernatePessoaDAO, mas que mais tarde posso mudar para OraclePessoaDAO...

Code:
        this.action( "MeuEspaco" , MeuEspacoAction.class , "addPessoa" )
         	.filter( new IoCFilter( pessoaDAO , "pessoaDAO" , IoCFilter.REQUEST ) )
         	.on( MeuEspacoAction.SUCCESS , fwd( "MeuEspaco.pessoaCadastrada.jsp" ) )
         	.on( MeuEspacoAction.ERROR , fwd( "MeuEspaco.pessoaNaoCadastrada.jsp" ) );


Até aqui bza..
Agora, meu objeto pessoaDAO vai para meu action?

Code:
	public String addPessoa() throws Exception {
 		PessoaDAO pessoaDAO = ( PessoaDAO ) input.getValue( "pessoaDAO" );		
 		Pessoa pessoa = new Pessoa();
 		pessoa.setNome( input.getStringValue( "nome" ) );
 		pessoa.setSobrenome( input.getStringValue( "sNome" ) );
 		pessoa.setEmail( input.getStringValue( "email" ) );
 		pessoa.setNascimento( Calendar.getInstance() );
 		pessoa.setLogin( input.getStringValue( "login" ) );
 		pessoa.setSenha( input.getStringValue( "senha" ) );
 		try{
 			pessoaDAO.inserir( pessoa );
 		}catch( Exception e ){
 
 		}		
 		return SUCCESS;
 	}


Acho que não né? Pra onde vai esse dao? ConnectionFilter acho que não vou precisar pq estou usando Hibernate, né? Vou dar uma olhada nesse DependencyFilter...

Vlw...
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

O IoCFilter coloca no input da action, como vc falou.


Sergio Oliveira

andre_guitar7


[Avatar]

Joined: 21/03/2006 12:03:21
Messages: 259
Location: Curitiba - PR
Offline

Alguém q tem um tempinho sobrando pode me explicar o que é e para que serve o DependencyFilter? Eu entrei nesse link, mas não entendi como posso usar isso na minha transação com minhas DAO's...

vlw!
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

No input vc tem uma connection e um DAO, certo ?

O Dao precisa da connection, em outras palavras depende da connection.

O DependencyFilter pega a connection e enfia no DAO.

Apenas isso...

Sergio Oliveira

andre_guitar7


[Avatar]

Joined: 21/03/2006 12:03:21
Messages: 259
Location: Curitiba - PR
Offline

Ok... no exemplo do MyBooks vc não tá usando Hibernate. Percebi que org.mentawai.transaction tem duas classes: a HibernateTransaction e a JdbcTransaction e o MyBooks usa o JdbcTransaction . O MySQLBookDAO, por exemplo, do MyBooks, precisa de uma conn, Hibernate não precisa, a configuração de conexão é feita pelo Hibernate.cfg.xml... como poderia fazer, nesse caso?
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

Se o seu DAO/Modelo está usando o hibernate, então ele precisa de uma session do hibernate.

Identico ao caso anterior, só que ao invés de usar um ConnectionFilter vc usa um HibernateFilter e ao invés de injetar uma connection vc injeta uma session.


Sergio Oliveira

andre_guitar7


[Avatar]

Joined: 21/03/2006 12:03:21
Messages: 259
Location: Curitiba - PR
Offline

saoj wrote:
Se o seu DAO/Modelo está usando o hibernate, então ele precisa de uma session do hibernate.

Identico ao caso anterior, só que ao invés de usar um ConnectionFilter vc usa um HibernateFilter e ao invés de injetar uma connection vc injeta uma session.

 


Entendi:

Code:
ac.addFilter(new DependencyFilter("conn", "transaction", "connection"));


Aqui vc tá atribuindo, através do setConnection() da DAO a conn...

No Hibernate fica tipo:

Code:
ac.addFilter(new DependencyFilter("session", "transaction", "session"));


Aqui to atribuindo ao setSession do meu DAO do Hibernate a session...
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

"conn", "transaction", "connection"

significa

injeta a conn na transaction usando setConnection.

Leia a documentação disso direitinho...

Sergio Oliveira

andre_guitar7


[Avatar]

Joined: 21/03/2006 12:03:21
Messages: 259
Location: Curitiba - PR
Offline

saoj wrote:
"conn", "transaction", "connection"

significa

injeta a conn na transaction usando setConnection.

Leia a documentação disso direitinho... 


Então vai ficar assim:

Code:
.filter( new DependencyFilter( "session" , "pessoaDAO" , "session" ) )


injeta session na pessoaDAO usando setSession, mas vou ter que criar um outro DependencyFilter pra session?
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

Pode ser só "session", "pessoaDao" pois o attributo é igual a chave.

Para criar uma session e colocar no input vc usa o HibernateFilter.

Sergio Oliveira

andre_guitar7


[Avatar]

Joined: 21/03/2006 12:03:21
Messages: 259
Location: Curitiba - PR
Offline

Se eu fizer assim:

Code:
 .filter( new HibernateFilter() )
 .filter( new DependencyFilter( HibernateFilter.KEY , "pessoaDAO" , "session" ) );


HibernateFilter.KEY não me retorna uma session?
 
Forum Index -> Comentários Gerais Go to Page: Previous  1, 2, 3 Next 
Go to:   
Powered by JForum 2.1.6 © JForum Team