On Wed, Feb 16, 2011 at 11:13 AM, Thiago H. de Paula Figueiredo <[email protected]> wrote: > Shouldn't we have a proper transaction package and let it handle all this?
What kind of features and functionality are you envisioning? Igor's work seems to me like a step in the right direction and I don't have time to participate so I am just happy that somebody's putting the work in. Kalle > On Wed, 16 Feb 2011 16:39:41 -0200, Josh Canfield <[email protected]> > wrote: > >>> Well, @PersistenceUnit annotation has unitName attribute, which is used >>> to >>> idenity the unit specified in persistence.xml. >> >> Ah. I don't use JPA. >> >>> But the current >>> questions is not how to identify the units but whether we want to commit >>> all >>> transactions at once. >> >> Perhaps by default @CommitAfter should commit everything, and if you >> want to limit it you provide appropriate @PersistenceUnit >> on the onSuccess method. >> >> How are you going to deal with failures when doing a multi-unit commit? >> >> Josh >> >> On Wed, Feb 16, 2011 at 10:02 AM, Igor Drobiazko >> <[email protected]> wrote: >>> >>> Well, @PersistenceUnit annotation has unitName attribute, which is used >>> to >>> idenity the unit specified in persistence.xml. >>> >>> >>> http://download.oracle.com/javaee/6/api/javax/persistence/PersistenceUnit.html >>> >>> First I would concentrate on the standard way to indentify the units; >>> namely >>> by string names. Later we can think about using annotations. But the >>> current >>> questions is not how to identify the units but whether we want to commit >>> all >>> transactions at once. >>> >>> On Wed, Feb 16, 2011 at 6:02 PM, Josh Canfield >>> <[email protected]>wrote: >>> >>>> Can you do this with marker annotations instead? >>>> @PersistenceUnit >>>> @MyTestUnit >>>> private EntityManager em; >>>> >>>> @PersistenceUnit >>>> @MyOtherUnit >>>> private EntityManager em2; >>>> >>>> @CommitAfter >>>> @MyOtherUnit >>>> @MyTestUnit // commit them both >>>> void onSuccess() {...} >>>> >>>> If you recall Tom van Dijk did a lot of work getting multiple >>>> hibernate sessions to work. Have you looked at his additions? >>>> http://codereview.appspot.com/2896041/ >>>> >>>> There is an email floating around with access to his git repository >>>> and discussing issues of CommitAfter, etc. >>>> >>>> Josh >>>> >>>> On Wed, Feb 16, 2011 at 8:44 AM, Igor Drobiazko >>>> <[email protected]> wrote: >>>> > Hi all, >>>> > >>>> > as you probably know I'm working on the Tapestry/JPA integration. In >>>> > contrast to Tynamo's integration, Tapestry's built-in JPA support will >>>> allow >>>> > having several persistence units in an application. This way you can >>>> inject >>>> > several EntityManagers into a single page, which are connected to >>>> different >>>> > databases. >>>> > >>>> > public class PersistEntity >>>> > { >>>> > @PersistenceUnit(unitName = "TestUnit") >>>> > private EntityManager em; >>>> > >>>> > @PersistenceUnit(unitName = "AnotherUnit") >>>> > private EntityManager em2; >>>> > >>>> > >>>> > @CommitAfter >>>> > void onSuccess() { >>>> > >>>> > ..... >>>> > } >>>> > } >>>> > >>>> > Now I have some issues to apply Tapestry's @CommitAfter semantics to >>>> > JPA >>>> > resource-local transactions. With Hibernate you have a single Session, >>>> > so >>>> it >>>> > is clear what to commit when @CommitAfter annotation is present: the >>>> active >>>> > transaction of the single session. With JPA you can have several >>>> > EntityManagers and so several transactions. When @CommitAfter is >>>> > present, >>>> > you don't know which of the active transactions to commit. >>>> > >>>> > So, the questions is what would be the best solution? Committing all >>>> > the >>>> > active transactions? Maybe we could add a new attribute to >>>> > @CommitAfter >>>> > annotations, which expects a list of persistence unit names to commit >>>> > the >>>> > transactions of? >>>> > >>>> > @CommitAfter( { "TestUnit", "AnotherUnit" } ) >>>> > void onSuccess() { >>>> > >>>> > ..... >>>> > } >>>> > >>>> > >>>> > Any thoughts or ideas`? >>>> > >>>> > -- >>>> > Best regards, >>>> > >>>> > Igor Drobiazko >>>> > http://tapestry5.de >>>> > >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: [email protected] >>>> For additional commands, e-mail: [email protected] >>>> >>>> >>> >>> >>> -- >>> Best regards, >>> >>> Igor Drobiazko >>> http://tapestry5.de >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> > > > -- > Thiago H. de Paula Figueiredo > Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and > instructor > Owner, Ars Machina Tecnologia da Informação Ltda. > Consultor, desenvolvedor e instrutor em Java, Tapestry e Hibernate > Coordenador e professor da Especialização em Engenharia de Software com > Ênfase em Java da Faculdade Pitágoras > http://www.arsmachina.com.br > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
