gpt4 book ai didi

java - Spring boot的数据库配置需要在web中才能正常工作

转载 作者:行者123 更新时间:2023-12-02 03:01:59 24 4
gpt4 key购买 nike

我正在使用 Spring boot 和 Oracle 11g 开发一个基于 Web 的应用程序。该应用程序分为 4 个 Maven 模块,它们是:

模型 - 在其中声明所有实体。持久性 - 其中我有 Spring 数据存储库。域 - 我在其中拥有所有服务。Web - 其中我有 MVC。

因此,在我的持久性项目中,我有 application.properties,如下所示:

spring.data.jpa.repositories.enabled=true

spring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialect
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=create
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.Oracle10gDialect

spring.datasource.url=jdbc:oracle:thin:@//localhost:1521/xe
spring.datasource.username=MOVIE_CATALOG
spring.datasource.password=MOVIE_CATALOG
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver

如果数据库已创建,则工作正常,但如果未创建数据库,并且我希望 Hibernate 为我执行此操作,我会收到如下异常:

Caused by: org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: Cannot determine embedded database driver class for database type NONE. If you want an embedded database please put a supported one on the classpath. If you have database settings to be loaded from a particular profile you may need to active it (no profiles are currently active).

我发现,如果我将数据库配置放在 Web 的 application.properties 中,该项目也可以正常工作,但我不想这样做。

有什么想法为什么会发生这个异常吗?

最佳答案

如果您从 Web 启动应用程序,则本地 application.properties 文件将替换 Persistence 中的文件,而不是合并。

解决方案是重命名其中一个文件,并在 @Configuration 类的 @PropertySource 中指定它们。

关于java - Spring boot的数据库配置需要在web中才能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42328432/

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