| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/03/2011 00:30:49
|
j0nny
GUJ Master
![[Avatar]](/images/avatar/2f37ce1ace06a770fab4452db0fe5c5f.png)
Membro desde: 19/09/2009 00:01:57
Mensagens: 1121
Localização: Blumenau - SC
Offline
|
Ainda não consegui resolver essa questão, e estou começando outro projeto que já vi que vou ter o mesmo problema, então quem puder dar uma dica, agradeceria
Pois meu gerenciador de entidades vai ser injetado por um container de DI, mas eu preciso ter a instância dele para controlar minhas transações, esse é meu problema.
This message was edited 1 time. Last update was at 21/03/2011 00:31:00
|
@jntsdaniel
github.com/jonatasdaniel
---
AndOrm - Framework ORM para Android
http://github.com/jonatasdaniel/andorm |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/03/2011 07:07:58
|
esmiralha
JavaEvangelist
Membro desde: 19/07/2006 09:04:42
Mensagens: 402
Offline
|
Se você gerenciar suas transações nos Repositórios, como vai gerenciar uma transação que envolva mais de um Repositório? Eu acho que transações devem ser gerenciadas por serviços, usando anotações.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/03/2011 07:13:26
|
fantomas
GUJ Master
![[Avatar]](/images/avatar/a2bf57c3aee957f2aaf75aa84717b3be.jpg)
Membro desde: 24/04/2008 16:10:55
Mensagens: 1534
Localização: Terra (maior parte do tempo)
Offline
|
esmiralha wrote:Se você gerenciar suas transações nos Repositórios, como vai gerenciar uma transação que envolva mais de um Repositório? Eu acho que transações devem ser gerenciadas por serviços, usando anotações.
Até onde entendi do tópico, tambem acho isso.
j0nny wrote:Mas na minha arquitetura, não tenho service, é só assim:
Controller - Entidades - Repositorios
Penso que deveria haver serviços ou algo similar neste ponto.
flws
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/03/2011 07:15:56
|
j0nny
GUJ Master
![[Avatar]](/images/avatar/2f37ce1ace06a770fab4452db0fe5c5f.png)
Membro desde: 19/09/2009 00:01:57
Mensagens: 1121
Localização: Blumenau - SC
Offline
|
esmiralha wrote:Se você gerenciar suas transações nos Repositórios, como vai gerenciar uma transação que envolva mais de um Repositório? Eu acho que transações devem ser gerenciadas por serviços, usando anotações.
Ok, assim é simples pensando em algo como JTA, Spring, mas se eu for gerenciar na mão?
|
@jntsdaniel
github.com/jonatasdaniel
---
AndOrm - Framework ORM para Android
http://github.com/jonatasdaniel/andorm |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/05/2011 16:14:39
|
j0nny
GUJ Master
![[Avatar]](/images/avatar/2f37ce1ace06a770fab4452db0fe5c5f.png)
Membro desde: 19/09/2009 00:01:57
Mensagens: 1121
Localização: Blumenau - SC
Offline
|
Desculpem a insistência, mas alguém teve uma situação parecida?
|
@jntsdaniel
github.com/jonatasdaniel
---
AndOrm - Framework ORM para Android
http://github.com/jonatasdaniel/andorm |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/05/2011 09:01:40
|
zica
Thread.start()
![[Avatar]](/images/avatar/c8c927ca414b70b6be5cb.jpg)
Membro desde: 10/09/2004 13:23:50
Mensagens: 46
Localização: São Pauo/SP
Offline
|
j0nny, pelo que sei do assunto, quem deveria gerenciar seu controle transacional seria sua camada de aplicação:
The application layer is responsible for driving the workflow of the application, matching the use cases at hand. These operatios are interface-independent and can be both synchronous or message-driven. This layer is well suited for spanning transactions, high-level logging and security.
The application layer is thin in terms of domain logic - it merely coordinates the domain layer objects to perform the actual work.
http://dddsample.sourceforge.net/architecture.html
The application services in the sample application are responsible for driving workflow and coordinating transaction management (by use of the declarative transaction management support in Spring). They also provide a high-level abstraction for clients to use when interacting with the domain. These services are typically designed to define or support specific use cases. See BookingService or HandlingEventService.
In some situations, e.g. when dealing with graphs of lazy-loaded domain objects or when passing services' return values over network boundaries, the services are wrapped in facades. The facades handle ORM session management issues and/or convert the domain objects to more portable Data Transfer Objects) that can be tailored to specific use cases. In that case, we consider the DTO-serializing facade part of the interfaces layer. See BookingServiceFacade for an example.
Como citado acima, seria um service, mas não um Domain Service, e sim um Application Service.
Acredito que essa seja uma saída válida, por exemplo, se em algum cenário você tivesse que alterar dois Aggregates diferentes em uma mesma transação.
|
"A força de vontade pode superar tudo!"
Ernesto Guevara de la Serna, janeiro de 1947.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/06/2011 09:53:56
|
fabioFx
Entusiasta Java
Membro desde: 29/03/2006 09:57:17
Mensagens: 15
Localização: Passo Fundo - RS
Offline
|
cara, numa aplicação que exige essa complexidade de controle de transação, não usar um framework como o spring + AOP é meio arriscado.
como alternativa pro spring, o Guice seria algo mais "leve"
mas acredito que com AOP vc resolveria facil..
mas de qualquer forma, no caso do DDD, o ideal é controlar transações apartir da camada de aplicação.
|
-------
Fábio Arezi |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/06/2011 12:05:54
|
Andre Brito
JWizard
Membro desde: 21/07/2007 17:44:31
Mensagens: 2485
Localização: Paraná
Offline
|
fabioFx wrote:cara, numa aplicação que exige essa complexidade de controle de transação, não usar um framework como o spring + AOP é meio arriscado.
como alternativa pro spring, o Guice seria algo mais "leve"
mas acredito que com AOP vc resolveria facil..
mas de qualquer forma, no caso do DDD, o ideal é controlar transações apartir da camada de aplicação.
Então ele teria
Controller -> Application -> Entity -> Repository?
|
Como organizar o GUJ.
Meu Twitter.
Meu blog.
Future proofing means making code easy to change, not trying to anticipate every possible way your code might need to change. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/06/2011 14:17:52
|
fabioFx
Entusiasta Java
Membro desde: 29/03/2006 09:57:17
Mensagens: 15
Localização: Passo Fundo - RS
Offline
|
muitos consideram a camada de controle como parte da application, outro consideram que application está dentro do controller..
pra mim as duas são a mesma coisa.. hehe
mas a idéia do teu fluxo está correta.. mesclando o controller e o application.
eu pessoalmente colocaria entre o application e o entity uma classe Service (domain), no caso do dominio do problmema q vc exemplificou..
|
-------
Fábio Arezi |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/06/2011 14:29:46
|
luistiagos
GUJ Expert
![[Avatar]](/images/avatar/98785ca89cfbbe933921bfe68a94553b.jpg)
Membro desde: 10/07/2006 10:37:23
Mensagens: 3161
Offline
|
pq não poem um Facade no meio e gerencia as transações atravez dele?
|
SCJP 1.5
SCJA 1.0
IBM DB2 Associate |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/06/2011 14:37:08
|
fabioFx
Entusiasta Java
Membro desde: 29/03/2006 09:57:17
Mensagens: 15
Localização: Passo Fundo - RS
Offline
|
luistiagos wrote:pq não poem um Facade no meio e gerencia as transações atravez dele?
mas esse é o objetivo do Service, mas quem gerencia a transação é a Application..
Andre, e por curiosidade, vc ta usando hibernate/jpa na impl. do repository?
|
-------
Fábio Arezi |
|
|
 |
|
|