我有一个包含许多项目的Eclipse工作区,一个项目“ shareddata”包含我的所有jpa实体,服务,persistence.xml(使用spring-data)等。在我的其他项目中,我已经将“ shareddata”作为依赖项包含在我的maven pom.xml中。
当我启动其他项目之一时,jpa / hibernate会验证并更新我的数据库表(hbm2ddl.auto = true)。这很好。
但是要测试我的整个项目,需要启动几个都包含“ shareddata”项目的项目。因此,每个项目都会验证并更新我的数据库表。这需要花费大量时间。
是否只能为一个项目启用“ hbm2ddl.auto”?还是可以在应用程序启动时动态禁用“ hbm2ddl.auto”?
如果可以的话,我可以启动我的jms服务器项目并进行数据库验证。接下来,我启动我的其他项目(tomcat和几个服务器应用程序),他们将不进行数据库验证。
节省很多时间:-)
最佳答案
我通过系统属性完成了这些工作。不幸的是,我不知道如何初始化休眠上下文。我个人是通过Spring使用${propName}
语法支持系统属性的。如果可以使用此表示法,则只需在配置文件中使用它,然后在单元测试开始时设置适当的属性即可。