我有如下所示的多模块项目
- DbUtils
- 博士模块项目
- 患者模块项目
我已经在 DbUtils 项目中配置了 hibernate,配置文件如下
LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
sessionFactory.setDataSource(dataSource());
sessionFactory.setPackagesToScan(new String[] { "com.test.dbutils.pojos" });
现在我想在两个子模块中使用这个 session 工厂,并且我想setPackagesToScan
项目明智。
即医生模块 com.test.doctor.pojos
和患者模块 com.test.patent.pojos
问题1)如何实现这一目标?
Q.2)是否有其他更好的方法在多模块中创建和使用 session 工厂?
最佳答案
如果您使用的是 Hibernate4+,那么您可能需要访问 http://docs.jboss.org/hibernate/orm/4.2/devguide/en-US/html/ch16.html
否则,据我所知,您必须在编译时让 JVM 了解 set packagesToScan。如果您将 Doctor 和 Patient 作为单独的 SpringBoot 应用程序运行[但仍然利用 DBUtils 中的通用代码],那么您可以选择通过某些 application.properties 文件将包作为字符串传递,并在子模块中设置正确的 POJO 包。
如果您在同一个应用程序中同时运行 Doctor 和 Patient,您至少可以尝试传递多个包 [sessionFactory.setPackagesToScan(new String[] { "com.test.doctor.pojos", "com.test. Patient.pojos"});]
关于java - maven多模块的Spring Hibernate配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43555460/