【发布时间】:2014-06-25 09:44:39
【问题描述】:
我是 Java 新手,我需要创建一个控制台应用程序来连接 4 个数据库(access、vfp、mysql 和 sqlserver)。
我从 hibernate.cfg.xml 文件开始并设法配置它们,每个数据库一个。然后我意识到 jpa 是一个更好的解决方案。所以我把我所有的休眠文件都改成了一个有 4 个持久化单元的 persistence.xml 文件。
数据库运行良好,但要使用它们,我必须创建大量代码。这是一个例子:
EntityManagerFactory dbPersistence =
Persistence.createEntityManagerFactory("oneOfMyDatabases");
EntityManager em = dbPersistence.createEntityManager();
Query query = em.createQuery("from ProductEntity").setMaxResults(10);
for (Object o : query.getResultList()) {
ProductEntity c = (ProductEntity) o;
System.out.println("Product " + c.getName());
}
cgPersistence.close();
我需要使用其他数据库中的数据更新其中一个数据库。
像这样创建所有代码很痛苦,所以我在考虑创建存储库,但我不知道如何为每个数据库使用不同的 entityManagers 创建它们。
我尝试向管理器注入 google guice 没有成功,但我无法处理如何关闭或在哪里关闭持久连接。
最后,我找到了 Spring Data,它似乎是我需要的,但我并不真正了解如何使用它。
我需要一些指南来让它工作,因为我已经阅读了大量的教程,而且每个教程看起来都不一样: · 我可以使用相同的persistence.xml 还是需要另一个配置文件?我已经看到 Spring Data 具有 jpa 兼容性,但我不确定它是如何工作的。 · Spring Context是Spring Framework的IOC容器吗?我需要它来使用 Spring Data 吗? · 我还需要什么?
提前谢谢你
【问题讨论】:
-
如果您在所有数据库中具有相同的架构,我建议您检查Spring's Dynamic DataSource Routing。如果没有,您需要创建 4 个数据源和 4 个实体管理器,正如 @vlad-mihalcea 指出的那样
标签: java spring hibernate jpa spring-data-jpa