Title: JPA Usage
<a name="JPAUsage-Thingstowatchoutfor"></a>
# Things to watch out for

<a name="JPAUsage-Critical:Alwayssetjta-data-sourceandnon-jta-data-source"></a>
## Critical: Always set jta-data-source and non-jta-data-source

Always set the value of jta-data-source and non-jta-data-source in your
persistence.xml file.  Regardless if targeting your EntityManager usage for
transaction-type="RESOURCE_LOCAL" or transaction-type="TRANSACTION", it's
very difficult to guarantee one or the other will be the only one needed. 
Often times the JPA Provider itself will require both internally to do
various optimizations or other special features.  

* The *jta-data-source* should always have it's OpenEJB-specific
'*JtaManaged*' property set to '*true*'  (this is the default)
* The *non-jta-data-source* should always have it's OpenEJB-specific
'*JtaManaged*' property set to '*false*'.

See [Containers and Resources](containers-and-resources.html)
 for how to configure 'JtaManaged' and a full list of <Resource> properties
for DataSources.

<a name="JPAUsage-Bedetachaware"></a>
## Be detach aware

A warning for any new JPA user is by default all objects will detach at the
end of a transaction.  People typically discover this when the go to remove
or update an object they fetched previously and get an exception like "You
cannot perform operation delete on detached object".

All ejb methods start a transaction unless a) you [configure them otherwise](transaction-annotations.html)
, or b) the caller already has a transaction in progress when it calls the
bean.  If you're in a test case or a servlet, it's most likely B that is
biting you.  You're asking an ejb for some persistent objects, it uses the
EntityManager in the scope of the transaction started around it's method
and returns some persistent objects, by the time you get them the
transaction has completed and now the objects are detached.

<a name="JPAUsage-Solutions"></a>
### Solutions
1. Call EntityManager.merge(..) inside the bean code to reattach your
object.
1. Use PersistenceContextType.EXTENDED as in '@PersistenceContext(unitName
= "movie-unit", type = PersistenceContextType.EXTENDED)' for EntityManager
refs instead of the default of PersistenceContextType.TRANSACTION.
1. If testing, use a technique to execute transactions in your test code. 
That's described here in [Unit testing transactions](unit-testing-transactions.html)


