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)