[
https://issues.apache.org/jira/browse/DELTASPIKE-315?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13584146#comment-13584146
]
Mark Struberg commented on DELTASPIKE-315:
------------------------------------------
Not sure how you like to implement this. We need a Bean<EntityManager> which
would somehow manage to lookup the persistence unit it is supposed for. But
since we need to produce NormalScoped (@RequestScoped, @TransactionScoped)
EntityManagers we do not have any InjectionPoint we can lookup. And
Bean<T>#create() doesn't take any additional qualifier info ..
We would need to parse all Qualifiers which are @PersistenceUnitName
meta-annotated and register beans for those. But ProcessAnnotatedType doesn't
get fired for annotations. The only way would be to @Observes
ProcessInjectionPoint to collect this info. But I'm really not sure if this is
worth it to avoid this 5 lines of code a user needs to write...
> Provide a producer for EntityManagerFactories
> ---------------------------------------------
>
> Key: DELTASPIKE-315
> URL: https://issues.apache.org/jira/browse/DELTASPIKE-315
> Project: DeltaSpike
> Issue Type: Bug
> Components: JPA-Module
> Affects Versions: 0.3-incubating
> Reporter: Mark Struberg
> Assignee: Mark Struberg
> Fix For: 0.4-incubating
>
>
> I found myself using the following pattern quite often in projects in the
> last time. I have a @Qualifier UnitName(value) and a producer for a
> @Dependent EntityManagerFactory for it. The configuration is mostly provided
> via the persistenceProperties Map in
> EntityManagerFactory#createEntityManagerFactory(unitname,
> persistenceProperties);
> We can further tweak the config lookup path and define a route which makes
> the most sense.
> This can be used to create the EntityManager producer very easily.
> @ApplicationScoped
> public class MyEntityManagerProducer {
> private @Inject @UnitName("orderUnit") EntityManagerFactory emf;
>
> @Produces @RequestScoped
> public EntityManager createEm() {
> return emf.createEntityManager();
> }
> .. + disposer
> }
> Please note that the EMF producer doens't clash with anything else as it only
> produces EMFs with the Qualifier @UnitName!
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira