You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltaspike.apache.org by "Gerhard Petracek (JIRA)" <ji...@apache.org> on 2015/01/02 20:02:34 UTC
[jira] [Updated] (DELTASPIKE-816) document @PersistenceUnitName
[ https://issues.apache.org/jira/browse/DELTASPIKE-816?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gerhard Petracek updated DELTASPIKE-816:
----------------------------------------
Description:
or select from multiple em-managers:
{code}
public class EntityManagerProducer
{
@PersistenceContext(unitName = "firstDB")
private EntityManager firstEntityManager;
@PersistenceContext(unitName = "secondDB")
private EntityManager secondEntityManager;
@Produces
protected EntityManager createFirstEntityManager()
{
return this.firstEntityManager;
}
protected void closeFirstEntityManager(@Disposes @First EntityManager entityManager)
{
if (entityManager.isOpen())
{
entityManager.close();
}
}
@Produces
@Second
@RequestScoped
protected EntityManager createSecondEntityManager()
{
return this.secondEntityManager;
}
protected void closeSecondEntityManager(@Disposes @Second EntityManager entityManager)
{
if (entityManager.isOpen())
{
entityManager.close();
}
}
}
//...
public class FirstLevelTransactionBean
{
@Inject
private @First EntityManager firstEntityManager;
@Inject
private NestedTransactionBean nestedTransactionBean;
@Transactional
public void executeInTransaction()
{
//...
this.nestedTransactionBean.executeInTransaction();
}
}
//...
public class NestedTransactionBean
{
@Inject
private @Second EntityManager secondEntityManager;
@Transactional
public void executeInTransaction()
{
//...
}
}
{code}
> document @PersistenceUnitName
> -----------------------------
>
> Key: DELTASPIKE-816
> URL: https://issues.apache.org/jira/browse/DELTASPIKE-816
> Project: DeltaSpike
> Issue Type: Task
> Components: Documentation
> Affects Versions: 1.2.1
> Reporter: Gerhard Petracek
> Assignee: Gerhard Petracek
> Fix For: 1.2.2
>
>
> or select from multiple em-managers:
> {code}
> public class EntityManagerProducer
> {
> @PersistenceContext(unitName = "firstDB")
> private EntityManager firstEntityManager;
> @PersistenceContext(unitName = "secondDB")
> private EntityManager secondEntityManager;
> @Produces
> protected EntityManager createFirstEntityManager()
> {
> return this.firstEntityManager;
> }
> protected void closeFirstEntityManager(@Disposes @First EntityManager entityManager)
> {
> if (entityManager.isOpen())
> {
> entityManager.close();
> }
> }
> @Produces
> @Second
> @RequestScoped
> protected EntityManager createSecondEntityManager()
> {
> return this.secondEntityManager;
> }
> protected void closeSecondEntityManager(@Disposes @Second EntityManager entityManager)
> {
> if (entityManager.isOpen())
> {
> entityManager.close();
> }
> }
> }
> //...
> public class FirstLevelTransactionBean
> {
> @Inject
> private @First EntityManager firstEntityManager;
> @Inject
> private NestedTransactionBean nestedTransactionBean;
> @Transactional
> public void executeInTransaction()
> {
> //...
> this.nestedTransactionBean.executeInTransaction();
> }
> }
> //...
> public class NestedTransactionBean
> {
> @Inject
> private @Second EntityManager secondEntityManager;
> @Transactional
> public void executeInTransaction()
> {
> //...
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)