我有像下面这样的多模块项目
我在DbUtils项目中使用配置文件配置了hibernate,如下所示
LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
sessionFactory.setDataSource(dataSource());
sessionFactory.setPackagesToScan(new String[] { "com.test.dbutils.pojos" });
现在我想在两个子模块中使用这个会话工厂,我希望setPackagesToScan
项目明智。
即医生模块com.test.doctor.pojos
和患者模块com.test.patient.pojos
Q.1)如何实现这一目标?
问题2)在多个模块中是否还有其他更好的方法来创建和使用会话工厂?
答案 0 :(得分:0)
如果您使用的是Hibernate4 +,那么您可能希望通过http://docs.jboss.org/hibernate/orm/4.2/devguide/en-US/html/ch16.html
否则,据我所知,您必须让JVM在编译时了解set packagesToScan。如果您将Doctor和Patient作为单独的SpringBoot应用程序运行[但仍然利用DBUtils中的公共代码],那么您可以选择通过某些application.properties文件将包作为String传递,并在子模块中设置正确的POJO包。
如果您在同一个应用程序中同时运行Doctor和Patient,您至少可以尝试传递多个包[sessionFactory.setPackagesToScan(new String[] { "com.test.doctor.pojos", "com.test.patient.pojos" });]