相关疑难解决方法(0)

未设置'hibernate.dialect'时,连接不能为空

使用spring3设置hibernate有更多问题.这次是说连接是nul,因为没有设置它在我的hibernate.cfg.xml文件中的方言.

这是完整的例外:

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mySessionFactory' defined in URL [file:war/WEB-INF/datasource-config.xml]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Connection cannot be null when 'hibernate.dialect' not set
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1455)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:567)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
    at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:96)
    at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:44)
    at org.springframework.test.context.TestContext.buildApplicationContext(TestContext.java:198)
    at org.springframework.test.context.TestContext.getApplicationContext(TestContext.java:233)
    at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:126)
    at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:85)
    at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:231)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:95)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.invokeTestMethod(SpringJUnit4ClassRunner.java:139)
    at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)
    at org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)
    at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27)
    at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37)
    at org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate

22
推荐指数
2
解决办法
9万
查看次数

从applications.properties进行Spring引导的数据库application.yml

我有一个工作的Spring Boot应用程序连接到Postgres数据库.我已经使用application.properties文件设置了项目,但是想要切换到application.yml文件.但是,当我进行切换时,我的应用程序在尝试连接到数据库时出错.

原始的applications.properties文件:

spring.jpa.database=POSTGRESQL
spring.datasource.platform=postgres
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=create-drop
spring.database.driverClassName=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5432/mydb
spring.datasource.username=foo
spring.datasource.password=bar
Run Code Online (Sandbox Code Playgroud)

这是我在application.yml文件中到目前为止所做的:

spring.jpa:
  database: POSTGRESQL
  hibernate.ddl-auto: create-drop
  show-sql: true

spring.datasource:
  platform: postgres
  driverClassName: org.postgresql.Driver
  url: jdbc:postgresql://localhost:5432/mydb
  username: foo
  password: bar
Run Code Online (Sandbox Code Playgroud)

我在文件类型之间的翻译中遗漏了什么吗?

spring database-connection spring-boot

10
推荐指数
3
解决办法
5万
查看次数

引起:org.hibernate.HibernateException:未设置'hibernate.dialect'时,对DialectResolutionInfo的访问不能为null.

即使在设置了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
Run Code Online (Sandbox Code Playgroud)

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

这是什么问题?

hibernate spring-boot

8
推荐指数
1
解决办法
5万
查看次数

@Qualifier无效

我有3个数据源,我设置如下:

@Configuration
@Component
public class DataSourceConfig {

    @Bean("foo")
    @ConfigurationProperties(prefix = "spring.datasource.foo")
    public DataSource foo() {
        DataSource dataSource = DataSourceBuilder.create().build();
        return dataSource;
    }

    @Bean("bar")
    @ConfigurationProperties(prefix = "spring.datasource.bar")
    public DataSource bar() {
        DataSource dataSource = DataSourceBuilder.create().build();
        return dataSource;
    }

    @Bean("baz")
    @ConfigurationProperties(prefix = "spring.datasource.baz")
    public DataSource baz() {
        DataSource dataSource = DataSourceBuilder.create().build();
        return dataSource;
    }

}
Run Code Online (Sandbox Code Playgroud)

我试图将它们自动装入我的消费者类,如下所示:

import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;

@Component
public class MyClass {

    @Autowired
    public MyClass(
            @Autowired @Qualifier("foo") DataSource foo,
            @Autowired @Qualifier("bar") DataSource bar, …
Run Code Online (Sandbox Code Playgroud)

spring dependency-injection spring-boot spring-4

2
推荐指数
1
解决办法
1636
查看次数