如何在Tomcat下使用hibernate为H2数据库文件提供相对路径?

我有一个必须相当常见的设置:我有一个H2数据库,带有一个db文件.我在独立模式下使用db. Hibernate提供对db的访问,我已将我的代码部署到Tomcat中.

问题是:我找不到简单地将db文件放入war并在hibernate配置文件中提供相对路径的好方法.

目前,我必须在hibernate配置中使用c:// whatever_db_file_container_dir / dbname的路径.

这使我无法部署零配置Web应用程序.有没有办法将此设置转换为自包含零配置包?

最佳答案 目前,H2不支持类路径中的数据库(有一个功能请求,但它尚未实现).但这只适用于只读数据库.不幸的是,H2还不支持数据库URL中的系统属性.

但是,Hibernate支持Programmatic configuration.我不知道如何在Tomcat中获取Web应用程序的目录,但我知道catalina.home and catalina.base.所以在启动应用程序时,获取catalina.home系统属性的值,并设置Hibernate系统属性与数据库URL相关.我没有试过自己,但这应该是怎么回事.

点赞