org.hibernate.HibernateException: Truy cập vào DialectResolutionInfo không thể rỗng khi 'hibernate.dialect' không được đặt


205

Tôi đang thử chạy một ứng dụng spring-boot sử dụng hibernate qua spring-jpa, nhưng tôi gặp lỗi này:

Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set
        at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:104)
        at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:71)
        at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:205)
        at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:111)
        at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:234)
        at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:206)
        at org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1885)
        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1843)
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:843)
        at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:398)
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:842)
        at org.hibernate.jpa.HibernatePersistenceProvider.createContainerEntityManagerFactory(HibernatePersistenceProvider.java:152)
        at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:336)
        at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:318)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1613)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1550)
        ... 21 more

tệp pom.xml của tôi là thế này:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.1.8.RELEASE</version>
</parent>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-web</artifactId>
       </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-config</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-taglibs</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>commons-dbcp</groupId>
        <artifactId>commons-dbcp</artifactId>
    </dependency>
</dependencies>

Cấu hình ngủ đông của tôi là (cấu hình phương ngữ nằm trong phương thức cuối cùng của lớp này):

@Configuration
@EnableTransactionManagement
@ComponentScan({ "com.spring.app" })
public class HibernateConfig {

   @Bean
   public LocalSessionFactoryBean sessionFactory() {
      LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();

      sessionFactory.setDataSource(restDataSource());
      sessionFactory.setPackagesToScan(new String[] { "com.spring.app.model" });
      sessionFactory.setHibernateProperties(hibernateProperties());

      return sessionFactory;
   }

   @Bean
   public DataSource restDataSource() {
      BasicDataSource dataSource = new BasicDataSource();

      dataSource.setDriverClassName("org.postgresql.Driver");
      dataSource.setUrl("jdbc:postgresql://localhost:5432/teste?charSet=LATIN1");
      dataSource.setUsername("klebermo");
      dataSource.setPassword("123");

      return dataSource;
   }

   @Bean
   @Autowired
   public HibernateTransactionManager transactionManager(SessionFactory sessionFactory) {
      HibernateTransactionManager txManager = new HibernateTransactionManager();
      txManager.setSessionFactory(sessionFactory);
      return txManager;
   }

   @Bean
   public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
      return new PersistenceExceptionTranslationPostProcessor();
   }

   Properties hibernateProperties() {
      return new Properties() {
         /**
         * 
         */
        private static final long serialVersionUID = 1L;

        {
            setProperty("hibernate.hbm2ddl.auto", "create");
            setProperty("hibernate.show_sql", "false");
            setProperty("hibernate.dialect", "org.hibernate.dialect.PostgreSQLDialect");
         }
      };
   }
}

tôi đang làm gì sai ở đây?

Câu trả lời:


199

Trước tiên, xóa tất cả cấu hình của bạn Spring Boot sẽ khởi động nó cho bạn.

Hãy chắc chắn rằng bạn có một application.propertiesđường dẫn trong lớp và thêm các thuộc tính sau.

spring.datasource.url=jdbc:postgresql://localhost:5432/teste?charSet=LATIN1
spring.datasource.username=klebermo
spring.datasource.password=123

spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.show-sql=false
spring.jpa.hibernate.ddl-auto=create

Nếu bạn thực sự cần quyền truy cập vào một SessionFactoryvà về cơ bản là cho cùng một nguồn dữ liệu, thì bạn có thể thực hiện các thao tác sau (cũng được ghi lại ở đây mặc dù đối với XML, không phải JavaConfig).

@Configuration        
public class HibernateConfig {

    @Bean
    public HibernateJpaSessionFactoryBean sessionFactory(EntityManagerFactory emf) {
         HibernateJpaSessionFactoryBean factory = new HibernateJpaSessionFactoryBean();
         factory.setEntityManagerFactory(emf);
         return factory;
    }
}

Bằng cách đó bạn có cả một EntityManagerFactoryvà một SessionFactory.

CẬP NHẬT: Kể từ Hibernate 5 SessionFactorythực sự mở rộng EntityManagerFactory. Vì vậy, để có được một SessionFactorybạn có thể chỉ cần EntityManagerFactorysử dụng nó hoặc sử dụng unwrapphương thức để có được một.

public class SomeHibernateRepository {

  @PersistenceUnit
  private EntityManagerFactory emf;

  protected SessionFactory getSessionFactory() {
    return emf.unwrap(SessionFactory.class);
  }

}

Giả sử bạn có một lớp với một mainphương thức @EnableAutoConfigurationmà bạn không cần @EnableTransactionManagementchú thích, vì điều đó sẽ được Spring Boot kích hoạt cho bạn. Một lớp ứng dụng cơ bản trong com.spring.appgói nên là đủ.

@Configuration
@EnableAutoConfiguration
@ComponentScan
public class Application {


    public static void main(String[] args) throws Exception {
        SpringApplication.run(Application.class, args);
    }

} 

Một cái gì đó như thế là đủ để có tất cả các lớp của bạn (bao gồm các thực thể và kho lưu trữ dựa trên dữ liệu Spring) được phát hiện.

CẬP NHẬT: Những chú thích này có thể được thay thế bằng một @SpringBootApplicationtrong các phiên bản mới hơn của Spring Boot.

@SpringBootApplication
public class Application {

    public static void main(String[] args) throws Exception {
        SpringApplication.run(Application.class, args);
    }
} 

Tôi cũng sẽ đề nghị loại bỏ sự commons-dbcpphụ thuộc vì điều đó sẽ cho phép Spring Boot định cấu hình HikariCPtriển khai nhanh hơn và mạnh hơn .


1
Nhưng có cách nào để tránh tạo tập tin này application.propertes? Tôi thích một cách mà tôi thực hiện tất cả các cấu hình trong lớp HibernateConfig.
Kleber Mota

2
Tại sao? Toàn bộ mục đích của Spring Boot là nó tự động cấu hình cho bạn ... Vì vậy, bạn muốn bao gồm một cấu hình java dài dòng hơn 7 dòng trong một tệp thuộc tính?!
M. Deinum

2
Nó thậm chí có thể là 6 dòng trong một tệp thuộc tính. Bạn không cần thiết lập spring.datasource.driverClassName khi bạn đang sử dụng Postgres vì ​​Boot sẽ suy ra từ spring.datasource.url.
Andy Wilkinson

2
@AlexWorden Không, không ... Thay vì đưa ra các nhận xét ngẫu nhiên, trước tiên bạn có thể muốn đọc cách các thuộc tính được tải, đặc biệt là hỗ trợ Spring Boot có. Mật khẩu trên đĩa không phải là vấn đề nếu bạn đặt quyền tệp. Đưa chúng vào cơ sở dữ liệu không tốt hơn nhiều ...
M. Deinum

4
Thay vì sử dụng 3 chú thích tức là Cấu hình, EnableAutoConfiguration, ElementScan. Chúng tôi có thể sử dụng chú thích SpringBootApplication
Pankaj

158

Tôi đã gặp phải một vấn đề tương tự khi khởi động ứng dụng (sử dụng Spring Boot) với máy chủ cơ sở dữ liệu .

Hibernate có thể xác định phương ngữ chính xác để sử dụng tự động, nhưng để thực hiện điều này, nó cần kết nối trực tiếp với cơ sở dữ liệu.


2
Vấn đề của tôi tương tự như vấn đề ở chỗ pg_hba.conf trên máy chủ không được cấu hình cho kết nối từ xa, điều này gây ra lỗi này cho tôi.
Brian

8
Nếu cơ sở dữ liệu bạn đang cố gắng kết nối không tồn tại, bạn cũng thấy lỗi này.
Jonas Pedersen

12
Có cùng một vấn đề, trong trường hợp của tôi, DB đã tăng nhưng thông tin đăng nhập sai. +1
Federico Piazza

thật ngạc nhiên khi tôi bắt đầu gặp vấn đề này khi bỏ lược đồ mong đợi hbm2ddl.auto = true sẽ tạo db và bảng. Tuy nhiên nó đã thất bại. nhưng wen tôi đã tạo lược đồ trống hbm2ddl làm việc tạo bảng
Saurabh

IP của máy cơ sở dữ liệu đã được thay đổi nhưng DNS đã được phân giải thành cái cũ :-(
Illidan

24

thêm spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQLDialectvào tập tin application.properies


Đây là một câu trả lời tuyệt vời - cho phép tôi sử dụng MockBean cho lớp cơ sở dữ liệu của mình và không có thông tin kết nối thực trong hồ sơ tài sản của mình
Taylor

Thêm spring.jpa.properIES.hibernate.dialect vào application.properies đã giúp tôi. Cảm ơn bạn)
Maks

22

Tôi đã gặp lỗi này khi cơ sở dữ liệu của tôi không được tạo. Sau khi tạo DB bằng tay, nó hoạt động tốt.


1
Thông thường, bạn có thể tránh việc tạo thủ công bằng cách sử dụng "spring.jpa.hibernate.ddl-auto = created"
Andrei

@Andrei - làm thế nào / ở đâu tôi sẽ chỉ định "spring.jpa.hibernate.ddl-auto = tạo"?
Alex Worden

2
@AlexWorden, Andrei có nghĩa là bạn có thể đặt nó trong application.properations nếu đó là Spring Boot. Phải có tương đương với cấu hình Spring dựa trên xml.
ACV

Có phải lỗi này chỉ xuất hiện khi cơ sở dữ liệu không tồn tại hoặc cả khi các bảng bên trong cơ sở dữ liệu không có mặt?
zygimantus

1
Tôi đã cung cấp sai mật khẩu và tôi đã phải đối mặt với cùng một lỗi. Cảm ơn ACV, bạn đã giúp tôi rất nhiều.
santu

17

Tôi cũng phải đối mặt với một vấn đề tương tự. Nhưng, đó là do mật khẩu không hợp lệ được cung cấp. Ngoài ra, tôi muốn nói rằng mã của bạn dường như là mã kiểu cũ sử dụng mùa xuân. Bạn đã đề cập rằng bạn đang sử dụng spring boot, điều đó có nghĩa là hầu hết mọi thứ sẽ được tự động cấu hình cho bạn. Phương ngữ ngủ đông sẽ được chọn tự động dựa trên trình điều khiển DB có sẵn trên đường dẫn cùng với thông tin xác thực hợp lệ có thể được sử dụng để kiểm tra kết nối đúng cách. Nếu có bất kỳ vấn đề nào với kết nối, bạn sẽ lại gặp phải lỗi tương tự. chỉ có 3 thuộc tính cần thiết trong application.properations

# Replace with your connection string
spring.datasource.url=jdbc:mysql://localhost:3306/pdb1

# Replace with your credentials
spring.datasource.username=root
spring.datasource.password=

8

Tôi gặp vấn đề tương tự và vấn đề của tôi là DB mà tôi đang cố kết nối không tồn tại.

Tôi đã tạo DB, xác minh URL / chuỗi kết nối và reran và mọi thứ hoạt động như mong đợi.


Cảm ơn bạn đã bình luận dẫn tôi kiểm tra cổng kết nối bị lỗi
Feras

4

Điều này xảy ra vì mã của bạn không phải là kiện để kết nối cơ sở dữ liệu. Hãy chắc chắn rằng bạn có trình điều khiển mysql và tên người dùng, mật khẩu chính xác.


4

Đảm bảo rằng bạn application.propertiescó tất cả thông tin chính xác: (Tôi đã thay đổi cổng db của mình từ đó 8889sang 3306hoạt động)

 db.url: jdbc:mysql://localhost:3306/test

4

Trong khởi động mùa xuân cho jpa java config, bạn cần mở rộng JpaBaseConfiguration và thực hiện các phương thức trừu tượng của nó.

@Configuration
public class JpaConfig extends JpaBaseConfiguration {

    @Override
    protected AbstractJpaVendorAdapter createJpaVendorAdapter() {
        final HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
        return vendorAdapter;
    }

    @Override
    protected Map<String, Object> getVendorProperties() {
        Map<String, Object> properties = new HashMap<>();
        properties.put("hibernate.dialect", "org.hibernate.dialect.PostgreSQLDialect");
    }

}

một số trường hợp application.properies không thể thấy các thay đổi thuộc tính. Và tôi đã thêm property.put như trên và hoạt động tốt.Thx để trả lời.
fatih yavuz

4

Xóa cấu hình Hibernate dư thừa

Nếu bạn đang sử dụng Spring Boot, bạn không cần cung cấp cấu hình JPA và Hibernate một cách rõ ràng, vì Spring Boot có thể làm điều đó cho bạn.

Thêm thuộc tính cấu hình cơ sở dữ liệu

Trong application.propertiestệp cấu hình Spring Boot, bạn có thêm thuộc tính cấu hình cơ sở dữ liệu của mình:

spring.datasource.driverClassName = "org.postgresql.Driver
spring.datasource.url = jdbc:postgresql://localhost:5432/teste?charSet=LATIN1
spring.datasource.username = klebermo
spring.datasource.password = 123

Thêm thuộc tính cụ thể Hibernate

Và, trong cùng một application.propertiestệp cấu hình, bạn cũng có thể đặt các thuộc tính Hibernate tùy chỉnh:

# Log SQL statements
spring.jpa.show-sql = false

# Hibernate ddl auto for generating the database schema
spring.jpa.hibernate.ddl-auto = create

# Hibernate database Dialect
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect

Đó là nó!


Thêm spring.jpa.properIES.hibernate.dialect vào application.properies đã giúp tôi. Cảm ơn bạn)
Maks

3

Tôi đã có vấn đề tương tự. thêm phần này vào application.properies đã giải quyết vấn đề:

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect

Thêm spring.jpa.properIES.hibernate.dialect vào application.properies đã giúp tôi. Cảm ơn bạn)
Maks

2

Trong trường hợp của tôi, người dùng không thể kết nối với cơ sở dữ liệu. Nếu sẽ có vấn đề tương tự nếu nhật ký chứa cảnh báo ngay trước ngoại lệ:

WARN HHH000342: Could not obtain connection to query metadata : Login failed for user 'my_user'.

2

Hãy chắc chắn rằng bạn có cơ sở dữ liệu của bạn trong pom của bạn như OP đã làm. Đó là vấn đề của tôi.


Bạn có thể giải thích thêm? Bạn có ý nghĩa gì với câu trả lời này?
Tunaki

Tôi chỉ cần thêm phụ thuộc mysql.
obesechicken13

2

Vấn đề của tôi là cơ sở dữ liệu nhúng đã được kết nối. đóng kết nối


1
Tôi có thể xác nhận rằng có một số loại sự cố Hibernate báo cáo lỗi này khi không kết nối được. Tôi có thể tái tạo vấn đề bật và tắt mạng.
borjab

2

Tôi gặp vấn đề này khi Eclipse không thể tìm thấy trình điều khiển JDBC. Phải làm một lớp làm mới từ nhật thực để có được công việc này.


2

Sau đây là một số lý do cho hibernate.dialectvấn đề không được đặt ra. Hầu hết các trường hợp ngoại lệ này được hiển thị trong nhật ký khởi động, cuối cùng là vấn đề được đề cập.

Ví dụ: Trong ứng dụng khởi động Spring với Postgres DB

1. Kiểm tra xem cơ sở dữ liệu có thực sự được cài đặt không và máy chủ của nó có được khởi động không.

  • org.postgresql.util.PSQLException: Kết nối với localhost: 5432 bị từ chối. Kiểm tra xem tên máy chủ và cổng có chính xác không và người quản lý bưu điện có chấp nhận kết nối TCP / IP không.
  • java.net.ConnectException: Kết nối bị từ chối: kết nối
  • org.hibernate.service.spi.ServiceException: Không thể tạo dịch vụ được yêu cầu [org.hibernate.engine.jdbc.env.spi.JdbcEn môi trường]

2. Kiểm tra xem tên cơ sở dữ liệu được đề cập chính xác.

  • org.postgresql.util.PSQLException: FATAL: cơ sở dữ liệu "foo" không tồn tại

    Trong application.propertiestập tin,

    spring.datasource.url = jdbc:postgresql://localhost:5432/foo

    nhưng fookhông tồn tại. Vì vậy, tôi đã tạo cơ sở dữ liệu từ pgAdmin cho postgres

    CREATE DATABASE foo;

3. Kiểm tra xem tên máy chủ và cổng máy chủ có thể truy cập được không.

  • org.postgresql.util.PSQLException: Kết nối với localhost: 5431 bị từ chối. Kiểm tra xem tên máy chủ và cổng có chính xác không và người quản lý bưu điện có chấp nhận kết nối TCP / IP không.
  • java.net.ConnectException: Kết nối bị từ chối: kết nối

4. Kiểm tra xem thông tin cơ sở dữ liệu có đúng không.

  • như @Pankaj đã đề cập
  • org.postgresql.util.PSQLException: FATAL: xác thực mật khẩu không thành công cho người dùng "postgres"

    spring.datasource.username= {DB USERNAME HERE}

    spring.datasource.password= {DB PASSWORD HERE}


1

Nếu bạn đang sử dụng dòng này:

sessionFactory.getHibernateProperties().put("hibernate.dialect", env.getProperty("hibernate.dialect"));

hãy chắc chắn rằng env.getProperty("hibernate.dialect")nó không rỗng


1

Tương tự nhưng trong JBoss WildFly AS .

Được giải quyết với các thuộc tính trong của tôi META-INF/persistence.xml

<properties>
            <property name="hibernate.transaction.jta.platform"
                value="org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform" />
            <property name="spring.jpa.database-platform" value="org.hibernate.dialect.PostgreSQLDialect" />
            <property name="spring.jpa.show-sql" value="false" />
</properties>

1

Đối với những người làm việc với AWS MySQL RDS, điều này có thể xảy ra khi bạn không thể kết nối với cơ sở dữ liệu. Chuyển đến cài đặt Nhóm bảo mật AWS cho MySQL RDS và chỉnh sửa quy tắc IP gửi đến bằng cách làm mới MyIP.

Tôi đã đối mặt với vấn đề này và làm ở trên đã khắc phục vấn đề cho tôi.


Tôi đã cho phép tất cả lưu lượng truy cập vào nhóm bảo mật của RDS Aurora MySQL, điều này đã giúp tôi. Nếu bạn muốn cụ thể hơn hoặc cho prod env, chỉ thêm các ips được phép
AleksandarT

1

Tôi cũng đã từng gặp phải vấn đề này. Trong trường hợp của tôi, đó là do không có khoản tài trợ nào được gán cho người dùng MySQL. Việc chỉ định tài trợ cho người dùng MySQL mà ứng dụng của tôi sử dụng đã giải quyết được vấn đề:

grant select, insert, delete, update on my_db.* to 'my_user'@'%';

1

Tôi đã có cùng một vấn đề và sau khi gỡ lỗi, hóa ra ứng dụng Spring.properations đã sai địa chỉ IP cho máy chủ DB

spring.datasource.url=jdbc:oracle:thin:@WRONG:1521/DEV

1

Tôi đã sao chép thông báo lỗi này trong ba trường hợp sau:

  • Không tồn tại người dùng cơ sở dữ liệu với tên người dùng được ghi trong tệp application.properIES hoặc tệp continence.properIES hoặc, như trong trường hợp của bạn, trong tệp HibernateConfig
  • Cơ sở dữ liệu được triển khai có người dùng đó nhưng người dùng được xác định bằng mật khẩu khác với mật khẩu trong một trong các tệp trên
  • Cơ sở dữ liệu có người dùng đó và mật khẩu khớp với nhau nhưng người dùng đó không có tất cả các đặc quyền cần thiết để thực hiện tất cả các tác vụ cơ sở dữ liệu mà ứng dụng khởi động mùa xuân của bạn thực hiện

Giải pháp rõ ràng là tạo người dùng cơ sở dữ liệu mới có cùng tên người dùng và mật khẩu như trong ứng dụng khởi động mùa xuân hoặc thay đổi tên người dùng và mật khẩu trong tệp ứng dụng khởi động mùa xuân của bạn để khớp với người dùng cơ sở dữ liệu hiện có và cấp đủ đặc quyền cho người dùng cơ sở dữ liệu đó. Trong trường hợp cơ sở dữ liệu MySQL, điều này có thể được thực hiện như dưới đây:

mysql -u root -p 
>CREATE USER 'theuser'@'localhost' IDENTIFIED BY 'thepassword';
>GRANT ALL ON *.* to theuser@localhost IDENTIFIED BY 'thepassword';
>FLUSH PRIVILEGES;

Rõ ràng là có các lệnh tương tự trong Postgresql nhưng tôi chưa kiểm tra nếu trong trường hợp Postgresql thông báo lỗi này có thể được sao chép trong ba trường hợp này.


0

Tôi gặp vấn đề tương tự và nguyên nhân là do không thể kết nối với cơ sở dữ liệu. Tìm lỗi hibernate HHH000342 trong nhật ký ở trên lỗi đó, nó sẽ cung cấp cho bạn một ý tưởng về nơi kết nối db bị lỗi (tên người dùng / pass, url, v.v. không chính xác).


0

Điều này xảy ra với tôi vì tôi đã không thêm conf.configure();trước khi bắt đầu phiên:

Configuration conf = new Configuration();
conf.configure();

0

Đảm bảo rằng bạn đã nhập chi tiết hợp lệ trong application.properations và liệu máy chủ cơ sở dữ liệu của bạn có khả dụng hay không. Ví dụ khi bạn kết nối với MySQL, hãy kiểm tra xem XAMPP có chạy đúng không.


0

Tôi đã đối mặt với cùng một vấn đề: db tôi đang cố gắng kết nối không tồn tại. Tôi đã sử dụng jpa.database=default(mà tôi đoán có nghĩa là nó sẽ cố gắng kết nối với cơ sở dữ liệu và sau đó tự động chọn phương ngữ). Khi tôi khởi động cơ sở dữ liệu, nó hoạt động tốt mà không có bất kỳ thay đổi nào.


0

Tôi gặp phải vấn đề này do phiên bản Mysql 8.0.11 trở lại phiên bản 5.7 đã được giải quyết cho tôi




0

Tôi đã có những lỗi giống nhau,

 Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set

trong trường hợp của tôi, WAR có application.properations bên trong chỉ đến máy chủ phát triển
nơi ứng dụng bên ngoài đang chỉ vào máy chủ DB bên phải.

đảm bảo bạn không có bất kỳ ứng dụng nào khác. Các ưu đãi trong classpath / lọ ...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.