2017-04-22 107 views
1

春天Hibernate的配置我有一个像下面Maven的多模块

  • DbUtils
    • 医生模块项目多模块项目
    • 病人模块项目

我已经配置在DbUtils项目中休眠,配置文件如下

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)如何实现这一目标?

Q.2)在多模块中创建和使用会话工厂还有其他更好的方法吗?

+0

假设'@ EntityScan'是另外计算策略。参考[this](https://github.com/spring-projects/spring-boot/issues/5401)例如这可能会有所帮助。 –

回答

0

如果你是Hibernate4 +,那么你可能需要去通http://docs.jboss.org/hibernate/orm/4.2/devguide/en-US/html/ch16.html

否则,就我所知,你必须让JVM知道大约在编译时设置packagesToScan。如果您将Doctor和Patient作为独立的SpringBoot应用程序运行,但[仍然利用DBUtils中的通用代码],则可以选择通过某个application.properties文件将字符串作为字符串传递,并在子模块中设置正确的POJO包。

如果在同一个应用程序同时拥有医患运行,可以ATLEAST尝试通过多个包[sessionFactory.setPackagesToScan(new String[] { "com.test.doctor.pojos", "com.test.patient.pojos" });]