From: Juergen H. <jho...@us...> - 2008-10-21 11:02:35
|
Update of /cvsroot/springframework/spring/tiger/src/org/springframework/orm/jpa/support In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv10756/tiger/src/org/springframework/orm/jpa/support Modified Files: PersistenceAnnotationBeanPostProcessor.java Log Message: @PersistenceContext for default EntityManagerFactory lookup works even in an @Configurable Hibernate entity Index: PersistenceAnnotationBeanPostProcessor.java =================================================================== RCS file: /cvsroot/springframework/spring/tiger/src/org/springframework/orm/jpa/support/PersistenceAnnotationBeanPostProcessor.java,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** PersistenceAnnotationBeanPostProcessor.java 31 Mar 2008 15:24:14 -0000 1.28 --- PersistenceAnnotationBeanPostProcessor.java 21 Oct 2008 11:02:19 -0000 1.29 *************** *** 501,516 **** throws NoSuchBeanDefinitionException{ ! Map matchingBeans = BeanFactoryUtils.beansOfTypeIncludingAncestors(this.beanFactory, EntityManagerFactory.class); ! if (matchingBeans.size() == 1) { ! Map.Entry entry = (Map.Entry) matchingBeans.entrySet().iterator().next(); ! String unitName = (String) entry.getKey(); if (this.beanFactory instanceof ConfigurableBeanFactory) { ((ConfigurableBeanFactory) this.beanFactory).registerDependentBean(unitName, requestingBeanName); } ! return (EntityManagerFactory) entry.getValue(); } else { throw new NoSuchBeanDefinitionException( ! EntityManagerFactory.class, "expected single bean but found " + matchingBeans.size()); } } --- 501,517 ---- throws NoSuchBeanDefinitionException{ ! String[] beanNames = ! BeanFactoryUtils.beanNamesForTypeIncludingAncestors(this.beanFactory, EntityManagerFactory.class); ! if (beanNames.length == 1) { ! String unitName = beanNames[0]; ! EntityManagerFactory emf = (EntityManagerFactory) this.beanFactory.getBean(unitName); if (this.beanFactory instanceof ConfigurableBeanFactory) { ((ConfigurableBeanFactory) this.beanFactory).registerDependentBean(unitName, requestingBeanName); } ! return emf; } else { throw new NoSuchBeanDefinitionException( ! EntityManagerFactory.class, "expected single bean but found " + beanNames.length); } } |