gpt4 book ai didi

spring - 无论我放在哪里都找不到 Hibernate import.sql

转载 作者:行者123 更新时间:2023-11-28 21:47:33 24 4
gpt4 key购买 nike

我在 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

我在 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>

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

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

最佳答案

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

将您的import.sql 放入src/main/resources 将使hibernate 加载它。在构建 jar 时,此目录的内容被复制到 WEB-INF/classes,在 Web 应用程序中它是类路径的一部分。

关于spring - 无论我放在哪里都找不到 Hibernate import.sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26799974/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com