How can I achieve that in the DAO layer ?
By adding that line --> <tx:transaction method="*" value="Mandatory" />
On 17/11/10 13:05, Timothy Ward wrote:
Hi Charles,
It is absolutely possible to do that with Aries JPA/Transactions. If the
transaction is started by a component that makes multiple calls to the DAO then
that DOA will use the same persistence context for each invocation.
A good way to ensure this sort of behaviour is to mark the DAO methods as
having a mandatory transaction requirement. That way you ensure that a
transaction context is set up by the caller, rather than the DAO. The default
required behaviour will also allow transactions to propagate from the caller,
but it will obviously create a new one if none exists, rather than throwing an
exception.
Regards,
Tim
----------------------------------------
Date: Mon, 15 Nov 2010 09:41:19 +0100
From: [email protected]
To: [email protected]
Subject: Re: How to translate Spring JPA into Aries JPA
Hi Timothy,
I have checked the content of the Aries Blog example. The example shows
How to inject transaction at the level of the DAO layer (= layer where
we define the mapping between the model and the Database).
My question is very simple : With Spring, it is possible to define
transactions at the Service layer instead of the DAO. In this case, it
is possible to initiate a transaction from a service to by example
insert address of a person (by calling the AddressDAO interface) AND
next inserting also the person in the DB (by calling the PersonDAO
interface). So, we use the same transaction to calls two different DAO
and entities. Is it possible to do that with Aries Transaction ?
Regards,
Charles
On 08/11/10 15:17, Timothy Ward wrote:
Hi,
It looks like you're trying to do Application-Managed JPA rather than
container-managed JPA with this example (i.e. you want to have an
EntityManagerFactory and manage the EntityManager lifecycle yourself).
In this case you can just inject the persistence unit directly into the bean
that wants it with e.g.
This encompasses all of the integration with global transactions as well as the
JPA injection via the setEntityManagerFactory method.
Managed transactions can be configured using the transactions namespace e.g.
This bean will have a "Required" transaction attribute for all public methods
invoked from outside the bean.
These two concepts are often used together with container-managed persistence
contexts (i.e you let the container manage the EntityManager lifecycle). There
are examples of this in the Blog sample.
I hope this helps. If you'd like to put any of your experiences together it
would be great to start building some better documentation for the Aries JPA
component.
Regards,
Tim
----------------------------------------
Hi,
Do we have an example showing what we define like this in spring
class="org.springframework.transaction.support.TransactionTemplate">
class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
but using Aries JPA and Aries Transaction now ?
Regards,
Charles M.
Apache ServiceMix, Camel and Karaf committer