即使在设置了hibernate.dialect属性后,我也会遇到异常。 我使用的是带有spring boot 1.4.2的hibernate 5.0.11和带有5.7的mysql版本
application.properties is like this
# Hibernate
hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
hibernate.show_sql=true
hibernate.hbm2ddl.auto=validate
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
这里有什么问题?
答案 0 :(得分:17)
当我遇到该错误时,将以下行添加到properties
文件中可解决此问题。
spring.jpa.database=mysql
答案 1 :(得分:1)
我也遇到了类似的问题,但意识到我没有正确地自定义数据库名称字段,从复制和粘贴到Springboot的tutorial创建的application.properties文件中:
spring.jpa.hibernate.ddl-auto=create
spring.datasource.url=jdbc:mysql://localhost:3306/db_example
spring.datasource.username=springuser
spring.datasource.password=ThePassword
请务必将db_example
springuser
和ThePassword
替换为您的实际值。
只是&#34; duh&#34;我自己的时刻,但可能对他人有用。
答案 2 :(得分:0)
可能你已经解决了这个问题,但我有类似的问题。
向mysql添加显式运行时依赖性应解决问题:
function my_method( int $id, ?string $string) { ...
允许spring boot根据类路径自动配置与jdbc相关的bean。
答案 3 :(得分:0)
在创建配置后添加以下内容可解决问题:
configuration.configure("hibernate.cfg.xml");
答案 4 :(得分:0)
我很想念:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
此帖子还提供了一些有用的提示:org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set
答案 5 :(得分:0)
就我而言,我在排除数据库的情况下启动了 Spring Boot 应用程序:
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, SecurityAutoConfiguration.class})
然后,一旦我开始创建 JPA 类,我就遇到了一个错误,我试图用它来修复:
@Bean(name = "entityManagerFactory")
public LocalSessionFactoryBean sessionFactory() {
return new LocalSessionFactoryBean();
}
这导致了问题中提到的异常。
所以解决方案当然只是从 DataSourceAutoConfiguration.class
注释中删除 @SpringBootApplication
,但我花了一些时间才注意到错误。
答案 6 :(得分:0)
在连接到 Oracle 数据库时,我的 Spring Boot 项目遇到了同样的问题。
这些是我为排除故障而执行的以下步骤-
确保application.properties文件d = np.zeros(5);
d[b] = np.arange(5)
中存在相关的休眠属性,
hibernate.dialect=org.hibernate.dialect.Oracle12cDialect
方言取决于您使用的数据库。 spring.jpa.hibernate.ddl-auto=update
也可以是 5 个属性之一。
验证 JDBC 网址。例如oracle 的连接字符串类似于 hibernate.ddl-auto
验证数据库凭据。
确保使用的服务名称在您的属性文件中是大写。因为休眠是区分大小写。例如在 oracle 的情况下,服务名称类似于 jdbc:oracle:thin:@10.10.32.20:1521/SRV_LICENSING_D1