一尘不染

我放在哪里都找不到Hibernate import.sql

tomcat

我在Maven上使用Spring MVC + JPA /
Hibernate配置。当我部署到Tomcat时,我希望Hibernate执行import.sql文件,但是无论它放在何处或如何配置该文件的路径都无所谓,它永远找不到。

org.hibernate.tool.hbm2ddl.SchemaExport SchemaExport - HHH000227: Running hbm2ddl schema export
org.hibernate.tool.hbm2ddl.SchemaExport SchemaExport - Import file not found: /META-INF/import.sql

我的Hibernate配置是在Spring中:

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    ...
    <property name="jpaProperties">
        <props>
            <prop key="hibernate.show_sql">true</prop>
            <prop key="hibernate.hbm2ddl.auto">create-drop</prop>
            <prop key="hibernate.hbm2ddl.import_files">/META-INF/import.sql</prop>
        </props>
    </property>
</bean>

我正在使用标准的Maven Web文件夹结构,将我import.sql放在/src/main/webapp/WEB- INF/文件夹中。我也尝试删除该import_files属性并将其放在webapp文件夹中无济于事。

我怀疑这可能与将web.jarURL 映射到的tomcat策略有关server_root/web/*


阅读 338

收藏
2020-06-16

共1个答案

一尘不染

import.sql从类路径的根目录读取。在Maven项目src/main/webapp中,不是类路径而是Web内容。类路径由中的Java类src/main/java和中的其他非Java事物组成src/main/resources

将您的内容import.sql放入src/main/resourceshibernate状态,即可使其hibernate。就像构造jar一样,此目录的内容也被复制到WEB- INF/classesWeb应用程序中类路径的一部分。

2020-06-16