无论我把它放在哪里都找不到Hibernate import.sql

Ped*_*cía 5 spring tomcat hibernate jpa maven

我在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
Run Code Online (Sandbox Code Playgroud)

在Spring中,我对Hibernate的配置是:

<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>
Run Code Online (Sandbox Code Playgroud)

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

我怀疑它可能与映射web.jar网址的tomcat策略有关server_root/web/*.

M. *_*num 13

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

把你import.sql放入src/main/resources遗嘱让hibernate加载它.在构造jar时,将复制此目录的内容,WEB-INF/classesWeb应用程序中的内容是类路径的一部分.