Skip to content

findDefaultEntityManagerFactory should consider EMF bean's primary flag [SPR-7549] #12206

Closed
@spring-projects-issues

Description

@spring-projects-issues

Thomas Strecker opened SPR-7549 and commented

I am generally very happay with all the magic Spring provides me. This week, however, I ran into a problem I can't seem to solve, namely having two persistence units and therefore entity manager factories in my application's context.

While everything works perfect when I declare and annotate the EntityManager in all relevant classes with the @PersistenceContext(unitName="XYZ"), I am having a slightly different problem. While one of the persistence units' names is static (b/c I control it) the name of the other is dynamic. This may seem silly but is beyond my control.

So I tried to provide the one EMF with the "primary=true" and the other with the "primary=false" attributes, hoping that the context would inject the primary EMF into those classes where I didn't specify the name of the persistence unit, while the other classes would obtain the EMF specified through the unitName.

Unfortunately, PersistenceAnnotationBeanPostProcessor.findDefaultEntityManagerFactory() does not check for the "primary" attribute of the retrieved beans, therefore complaining that the default entity manager cannot be obtained.

I, therefore, suggest to implement this check in the post processor.


Affects: 3.0.4

Issue Links:

1 votes, 2 watchers

Metadata

Metadata

Assignees

Labels

in: dataIssues in data modules (jdbc, orm, oxm, tx)type: enhancementA general enhancement

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions