private EntityManager resolveEntityManagerForQualifier(Class<? extends Annotation> emQualifier) { if (emHolder.isSet()) { return emHolder.get(); } return new QualifierBackedEntityManagerResolver(beanManager, emQualifier).resolveEntityManager(); }
@Override public EntityManager resolveEntityManager() { Bean<EntityManager> entityManagerBean = resolveEntityManagerBeans(); if (entityManagerBean == null) { StringBuilder qualifierNames = new StringBuilder(); for (Class<?> c : qualifiers) { qualifierNames.append(c.getName()).append(" "); } throw new IllegalStateException("Cannot find an EntityManager qualified with [" + qualifierNames + "]. Did you add a corresponding producer?"); } return (EntityManager) beanManager.getReference(entityManagerBean, EntityManager.class, beanManager.createCreationalContext(entityManagerBean)); } private Bean<EntityManager> resolveEntityManagerBeans()
if (repositoryMetadata.getQualifiers() != null) resolver = new QualifierBackedEntityManagerResolver(beanManager, repositoryMetadata.getQualifiers()); resolver = new QualifierBackedEntityManagerResolver(beanManager, Default.class);
public RepositoryMetadata init(Class<?> repositoryClass, BeanManager beanManager) { EntityViewAwareRepositoryMetadata repositoryMetadata = new EntityViewAwareRepositoryMetadata(repositoryClass); repositoryMetadata.setEntityViewManagerResolver(extractEntityViewManagerResolver(repositoryClass)); // read from looks for JPA Transactional and EntityManagerConfig to determine attributes // if those are set, don't process old annotations if (!repositoryMetadata.readFrom(repositoryClass, beanManager)) { repositoryMetadata.setEntityManagerResolverClass(extractEntityManagerResolver(repositoryClass)); repositoryMetadata.setEntityManagerFlushMode(extractEntityManagerFlushMode(repositoryClass)); if (repositoryMetadata.getEntityManagerResolverClass() != null) { Set<Bean<?>> beans = beanManager.getBeans(repositoryMetadata.getEntityManagerResolverClass()); Class<? extends Annotation> scope = beanManager.resolve(beans).getScope(); repositoryMetadata.setEntityManagerResolverIsNormalScope(beanManager.isNormalScope(scope)); } else { EntityManagerResolver resolver; if (repositoryMetadata.getQualifiers() != null) { resolver = new QualifierBackedEntityManagerResolver(beanManager, repositoryMetadata.getQualifiers()); } else { resolver = new QualifierBackedEntityManagerResolver(beanManager, Default.class); } repositoryMetadata.setUnmanagedResolver(resolver); repositoryMetadata.setEntityManagerResolverIsNormalScope(false); } } repositoryMetadata.setEntityMetadata(entityMetadataInitializer.init(repositoryMetadata)); initializeMethodsMetadata(repositoryMetadata, beanManager); return repositoryMetadata; }
public RepositoryMetadata init(Class<?> repositoryClass, BeanManager beanManager) { EntityViewAwareRepositoryMetadata repositoryMetadata = new EntityViewAwareRepositoryMetadata(repositoryClass); repositoryMetadata.setEntityViewManagerResolver(extractEntityViewManagerResolver(repositoryClass)); // read from looks for JPA Transactional and EntityManagerConfig to determine attributes // if those are set, don't process old annotations if (!repositoryMetadata.readFrom(repositoryClass, beanManager)) { repositoryMetadata.setEntityManagerResolverClass(extractEntityManagerResolver(repositoryClass)); repositoryMetadata.setEntityManagerFlushMode(extractEntityManagerFlushMode(repositoryClass)); if (repositoryMetadata.getEntityManagerResolverClass() != null) { Set<Bean<?>> beans = beanManager.getBeans(repositoryMetadata.getEntityManagerResolverClass()); Class<? extends Annotation> scope = beanManager.resolve(beans).getScope(); repositoryMetadata.setEntityManagerResolverIsNormalScope(beanManager.isNormalScope(scope)); } else { EntityManagerResolver resolver; if (repositoryMetadata.getQualifiers() != null) { resolver = new QualifierBackedEntityManagerResolver(beanManager, repositoryMetadata.getQualifiers()); } else { resolver = new QualifierBackedEntityManagerResolver(beanManager, Default.class); } repositoryMetadata.setUnmanagedResolver(resolver); repositoryMetadata.setEntityManagerResolverIsNormalScope(false); } } repositoryMetadata.setEntityMetadata(entityMetadataInitializer.init(repositoryMetadata)); initializeMethodsMetadata(repositoryMetadata, beanManager); return repositoryMetadata; }
@Override public EntityManager resolveEntityManager() { Bean<EntityManager> entityManagerBean = resolveEntityManagerBeans(); if (entityManagerBean == null) { StringBuilder qualifierNames = new StringBuilder(); for (Class<?> c : qualifiers) { qualifierNames.append(c.getName()).append(" "); } throw new IllegalStateException("Cannot find an EntityManager qualified with [" + qualifierNames + "]. Did you add a corresponding producer?"); } return (EntityManager) beanManager.getReference(entityManagerBean, EntityManager.class, beanManager.createCreationalContext(entityManagerBean)); } private Bean<EntityManager> resolveEntityManagerBeans()