gpt4 book ai didi

spring - 在 Spring 中,如何使用 ClassPathXmlApplicationContext 来获取 EntityManager?

转载 作者:行者123 更新时间:2023-12-05 00:42:38 25 4
gpt4 key购买 nike

使用 Spring,我可以 Autowiring 具有以下属性的 bean:

@PersistenceContext(unitName="foo") private EntityManager em;

使用以下我可以手动 Autowiring bean “someBean”:
ClassPathXmlApplicationContext ctx = 
new ClassPathXmlApplicationContext("META-INF/applicationContext.xml");
AutowireCapableBeanFactory fac = ctx.getAutowireCapableBeanFactory();
fac.autowireBean(someBean);

但是,我无法弄清楚如何直接获取特定的 EntityManager。用例是我想编写一个测试来获取所有 EntityManager 对象并在其中执行简单的查询以确保它们设置正确。为此,我需要能够从应用程序上下文中获取所有 EntityManager 对象。我怎样才能做到这一点?

以下不起作用。它返回一个空 map 。
Map<String,EntityManager> ems = ctx.getBeansOfType(EntityManager.class);

最佳答案

试试打电话

EntitiyManagerFactory factory = 
(EntityManagerFactory) ctx.getBean("myEntityManagerFactoryBean")
EntityManager em = factory.createEntityManager();

其中“myEntityManagerFactorBean”是您的 LocalContainerEntityManagerFactoryBean
但是你为什么需要那个?

关于spring - 在 Spring 中,如何使用 ClassPathXmlApplicationContext 来获取 EntityManager?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1891320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com