[jbossseam-issues] [JBoss JIRA] Updated: (JBSEAM-4391) Need to add transaction propagation types to @Transactional
Stuart Douglas (JIRA)
jira-events at lists.jboss.org
Wed Sep 2 21:47:35 EDT 2009
[ https://jira.jboss.org/jira/browse/JBSEAM-4391?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Stuart Douglas updated JBSEAM-4391:
-----------------------------------
Attachment: jbseam-requires-new-3.diff
I have attached a patch that prevents the propegation of the SMPC across transaction boundaries and includes integration tests.
> Need to add transaction propagation types to @Transactional
> -----------------------------------------------------------
>
> Key: JBSEAM-4391
> URL: https://jira.jboss.org/jira/browse/JBSEAM-4391
> Project: Seam
> Issue Type: Feature Request
> Components: Core
> Affects Versions: 2.2.0.GA
> Environment: N/A
> Reporter: asookazian
> Attachments: jbseam-requires-new-1.diff, jbseam-requires-new-2.diff, jbseam-requires-new-3.diff
>
>
> The current tx propagation types for use with @Transactional are the following:
> REQUIRED, MANDATORY, SUPPORTS, NEVER;
> Here is a comment from the TransactionalPropagationType enum class:
> * Transaction propagation strategies for Seam JavaBean components. Note that unlike EJB3 components, there are no strategies for suspending transactions.
> Please add REQUIRES_NEW and NOT_SUPPORTED. I am unable to solve my functional requirement of calling a webservice which inserts into remote db (which does not require a tx) and inserting into multiple local db tables (requires tx) using JavaBean components and Seam @Transactional. The requirement is that even if the webservice call fails, the local db inserts should continue and succeed (i.e. no atomicity, no rollback).
> There is an action method in my JavaBean Seam component that is invoked from a commandButton in JSF page. Then there are two private methods that are invoked from that public method. One requires tx support, the other does not. With EJB3, I would simply use NOT_SUPPORTED for one and REQUIRES_NEW for the other. Now using JavaBeans and @Transactional, I cannot solve my problem in terms of tx support requirements. @Transactional only works on public methods.
> I tried recalling the component's private method (now refactored to public with @Transactional) using Component.getInstance("foo"); but that did not work.
> Spring has robust tx support like EJB 3. Seam needs to be ramped up in terms of tx support for JavaBean components.
> References:
> http://www.seamframework.org/Community/TransactionalPropagationTypes
> http://www.seamframework.org/Community/TransactionalOnPrivateMethod
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the seam-issues
mailing list