클래스 경로 자원에 정의 된 이름이 'entityManagerFactory'인 Bean 작성 오류 : init 메소드 호출 실패


115

봄 프로젝트를 컴파일 할 때 다음과 같은 오류가 발생했습니다.

클래스 경로 리소스 [org / springframework / boot / autoconfigure / orm / jpa / HibernateJpaAutoConfiguration.class]에 정의 된 이름이 'entityManagerFactory'인 Bean 생성 오류 : init 메소드 호출 실패

STS Eclipse 및 MySql 데이터베이스를 사용하고 있습니다.

내 연결 문자열 Application.Properties은

spring.datasource.url=jdbc:mysql://localhost:3306/stgdb
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update

자세한 오류는 다음과 같습니다.

=================================================

2016-10-15 15:34:38.875[0;39m [31mERROR[0;39m [35m3700[0;39m [2m---[0;39m [2m[           main][0;39m [36mo.s.boot.SpringApplication              [0;39m [2m:[0;39m Application startup failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1583) ~[spring-beans-4.3.3.RELEASE.jar:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) ~[spring-beans-4.3.3.RELEASE.jar:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) ~[spring-beans-4.3.3.RELEASE.jar:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.3.RELEASE.jar:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.3.RELEASE.jar:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.3.RELEASE.jar:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.3.RELEASE.jar:4.3.3.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1076) ~[spring-context-4.3.3.RELEASE.jar:4.3.3.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:851) ~[spring-context-4.3.3.RELEASE.jar:4.3.3.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541) ~[spring-context-4.3.3.RELEASE.jar:4.3.3.RELEASE]
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:761) [spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:371) [spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) [spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1186) [spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1175) [spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
    at com.s2g.testrestapplication.TestRestApplication.main(TestRestApplication.java:10) [classes/:na]
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:954) ~[hibernate-entitymanager-5.0.11.Final.jar:5.0.11.Final]
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:882) ~[hibernate-entitymanager-5.0.11.Final.jar:5.0.11.Final]
    at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60) ~[spring-orm-4.3.3.RELEASE.jar:4.3.3.RELEASE]
    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:353) ~[spring-orm-4.3.3.RELEASE.jar:4.3.3.RELEASE]
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:373) ~[spring-orm-4.3.3.RELEASE.jar:4.3.3.RELEASE]
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:362) ~[spring-orm-4.3.3.RELEASE.jar:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1642) ~[spring-beans-4.3.3.RELEASE.jar:4.3.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1579) ~[spring-beans-4.3.3.RELEASE.jar:4.3.3.RELEASE]
    ... 16 common frames omitted
Caused by: org.hibernate.exception.GenericJDBCException: Unable to obtain JDBC Connection
    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:47) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:109) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:95) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
    at org.hibernate.tool.schema.extract.internal.ExtractionContextImpl.getJdbcConnection(ExtractionContextImpl.java:65) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
    at org.hibernate.tool.schema.extract.internal.ExtractionContextImpl.getJdbcDatabaseMetaData(ExtractionContextImpl.java:75) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
    at org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl.locateTableInNamespace(InformationExtractorJdbcDatabaseMetaDataImpl.java:339) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
    at org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl.getTable(InformationExtractorJdbcDatabaseMetaDataImpl.java:241) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
    at org.hibernate.tool.schema.extract.internal.DatabaseInformationImpl.getTableInformation(DatabaseInformationImpl.java:105) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
    at org.hibernate.tool.schema.internal.SchemaMigratorImpl.doMigrationToTargets(SchemaMigratorImpl.java:162) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
    at org.hibernate.tool.schema.internal.SchemaMigratorImpl.doMigration(SchemaMigratorImpl.java:60) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
    at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:134) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
    at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:101) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
    at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:472) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
    at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:444) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:879) ~[hibernate-entitymanager-5.0.11.Final.jar:5.0.11.Final]
    ... 22 common frames omitted
Caused by: com.atomikos.jdbc.AtomikosSQLException: Connection pool exhausted - try increasing 'maxPoolSize' and/or 'borrowConnectionTimeout' on the DataSourceBean.
    at com.atomikos.jdbc.AtomikosSQLException.throwAtomikosSQLException(AtomikosSQLException.java:46) ~[transactions-jdbc-3.9.3.jar:na]
    at com.atomikos.jdbc.AbstractDataSourceBean.throwAtomikosSQLException(AbstractDataSourceBean.java:90) ~[transactions-jdbc-3.9.3.jar:na]
    at com.atomikos.jdbc.AbstractDataSourceBean.throwAtomikosSQLException(AbstractDataSourceBean.java:85) ~[transactions-jdbc-3.9.3.jar:na]
    at com.atomikos.jdbc.AbstractDataSourceBean.getConnection(AbstractDataSourceBean.java:347) ~[transactions-jdbc-3.9.3.jar:na]
    at com.atomikos.jdbc.AbstractDataSourceBean.getConnection(AbstractDataSourceBean.java:394) ~[transactions-jdbc-3.9.3.jar:na]
    at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:180) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
    at org.hibernate.tool.schema.extract.internal.ExtractionContextImpl.getJdbcConnection(ExtractionContextImpl.java:62) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
    ... 33 common frames omitted
==============================
Pom.xml file
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.s2g.testrestapplication</groupId>
    <artifactId>testrestapplication</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>TestRestApplication</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.1.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.2.2</version>
        </dependency>

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.2.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </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-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.opensaml</groupId>
            <artifactId>opensaml-saml-api</artifactId>
            <version>3.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jersey</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jta-atomikos</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

3
분명히 "오류"는 "원인 : com.atomikos.jdbc.AtomikosSQLException : 연결 풀이 소진되었습니다. DataSourceBean에서 'maxPoolSize'및 / 또는 'borrowConnectionTimeout'을 늘려보십시오."였습니다.
— 닐 스톡턴

답변:


78

다음 종속성을 추가하여 시작합니다.

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>4.1.4.Final</version>
</dependency>

과

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>5.2.3.Final</version>
</dependency>

업데이트 : 또는 간단히 다음 종속성을 추가하십시오.

<dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.3.0</version>
</dependency>

33
@ georges-van 동일한 오류가 발생했으며 언급 한 두 가지 종속성이 이미 spring-boot-starter-data-jpa다음과 같은 오류가 발생했습니다. anotepad.com/notes/wpjr5g

@georgesvan 나는 이미 봄 부팅에서 가져온 위의 항아리를 가지고 있습니다. 이 똑같은 오류의 원인이 될 수 있다고 생각합니다. 최대 절전 모드 관련 종속성을 추가 할 때 똑같은 문제에 직면합니다. javax.persistence 패키지의 Java 파일을 사용하면 모든 것이 정상이지만 org.hibernate 패키지의 Java 파일을 사용할 때 정확히 동일한 오류가 나타납니다.
— user641887

1
게시물에서 언급 한 것과 동일한 버전을 사용하십시오.
— Shahab A

4
@georges, thevikasdube는 이미 Hibernate를 포함하는 spring-boot-starter-data-jpa 종속성을 사용하고 있습니다. 그가 명시 적으로 최대 절전 모드 종속성을 포함해야하는 이유는 무엇입니까?
— Mav55

6
FYI hibernate-entitymanager는 이제 더 이상 사용되지 않습니다. hibernate-core대신 (only) 를 사용하십시오 .
— 보헤미안

74

Java 9를 사용하는 사람들은 다음 종속성을 포함합니다.

<dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.3.0</version>
</dependency>

4
Java 8 이후 버전에이 명시 적 포함이 필요한 이유에 관심이있는 사람들을 위해 여기에 흥미로운 기사가 ​​있습니다. baeldung.com/java-9-jaxbexception , 기본적으로 Java 9s의 모듈 식 시스템 도입 및 필수가 아닌 모든 libs를
— 줄이려

분명히 그는 너무 많은 사람들 이이 오류를 받기 시작했을 때이 기사를 추가했습니다.
— Rahul Jangra

Java 8을 사용하고 있지만 이것은 나를 위해 일했습니다.
— ahmetcetin

이것은 Gradle을 위해 무엇일까요?
— FlexEast 2018 년

이 문제가 해결되었습니다. 감사합니다
— bileleleuch

18

종속성을 추가해도 문제가 해결되지 않았습니다.

이 문제는 "@Entity"클래스의 일부이고 데이터베이스에 존재하지 않는 "추가"필드로 인해 제 끝에서 발생했습니다.

@Entity 클래스에서 추가 필드를 제거하고 작동했습니다.

행운을 빕니다.


1
추가 필드 란 무엇을 의미합니까 ?? 이것에 대해 더 많은 정보를 줄 수 있습니까.? 나는 지금 같은 문제가 있습니다
— Bandham Manikanta

나는 private / public integers..etc와 같이 데이터베이스에 존재하지 않는 추가 속성을 의미했습니다.
— JAD

일했다.! 내 Entity 클래스에는 두 개의 생성자 (arg, no-arg)가있었습니다. 감사합니다 @JAD. 행복한 코딩.
— Bandham Manikanta

예,이 문제는 모든 항목 클래스의 문제와 관련 될 수 있습니다.
— 지

작동했습니다! 오류는 종속성 또는 엔티티 관리자 구성 문제가 아닙니다. 문제는 내 엔티티 클래스 중 하나였습니다. 지속성 관리자의 도움으로 엔티티 클래스를 만든 후 문제가 해결되었습니다. 감사.
— 피터

9

나도 같은 문제에 직면했습니다. Java9를 사용하고 pom 파일에서 다음 종속성을 사용했습니다.

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</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-web</artifactId>
    </dependency>
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

이 문제는 pom에 아래 종속성을 추가 한 후 해결되었습니다.

    <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.3.0</version>
    </dependency>

8
이것은 Rahul Jangra의 답변의 중복입니다 : stackoverflow.com/a/49707331/636009
— David Conrad

7

의 jar 파일 hibernate-core과hibernate-entitymanager 종속성이 손상되었거나 컴퓨터에 제대로 설치되지 않은 것 같습니다.

나는 방금 제안 라는 이름의 폴더를 삭제 hibernate-core하고 hibernate-entitymanager메이븐 로컬 저장소에서을 메이븐이 다시 설치됩니다.

Maven 로컬 저장소의 기본 위치 C:\Documents and Settings\[USERNAME]\.m2는 Windows 또는 ~/.m2Linux / Mac입니다.


그것은 나를 위해 일했으며 스프링 부트 버전을 1.5에서 2.3으로 업데이트 했으며이 오류가 발생했습니다.
— Ali786

전체 저장소를 삭제했는데 작동합니다. 스프링 부
— 트로이 문제

5

제 경우에는 아래 주석 중 하나를 삭제하면 예를 들어 'entityManagerFactory'오류 메시지가 표시됩니다.

 @Id
  @GeneratedValue(strategy=GenerationType.AUTO)

또는

@ManyToMany(targetEntity=listOfObject_x.class)

누락 된 주석을 추가하면 오류 메시지가 사라집니다.

package mypackage_unameit;
import javax.persistence.PrePersist;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import lombok.Data;

@Data
@Entity
public class Someclasss {

  @Id
  @GeneratedValue(strategy=GenerationType.AUTO)
  private Long id;

  @NotNull
  @Size(min=5, message="Name must be at least 5 characters long")
  private String name;

  private Date createdAt;

  @ManyToMany(targetEntity=listOfObject_x.class)
  @Size(min=1, message="You must choose at least 1 ingredient")
  private List<listOfObject_x>   = new ArrayList<>();

  @PrePersist
  void createdAt() {
    this.createdAt = new Date();
  }
}

5

나는 jdk-12.0.2.jdk, '문제에 대한 해결책을 찾았고 pom.xml에 종속성을 추가했습니다.

<!-- https://mvnrepository.com/artifact/javax.xml.bind/jaxb-api -->
<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.3.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.javassist/javassist -->
<dependency>
    <groupId>org.javassist</groupId>
    <artifactId>javassist</artifactId>
    <version>3.25.0-GA</version>
</dependency>

1
감사합니다. 저도 JDK 12를 사용하며 이것이 저에게 적합한 유일한 제품입니다.
— AnT

왜 이러한 종속성을 추가하면 우리 중 일부의 오류가 해결되었는지 설명 할 수 있습니까?
— Keegs

4

Maven 대신 Gradle을 사용하는 경우 빌드 파일의 종속성에 다음을 추가하세요.

compile('javax.xml.bind:jaxb-api:2.3.0')

3

스프링 종속성 버전을 2.0.4에서 2.1.6으로 업데이트하여 내 문제를 해결했습니다.

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.4.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
</parent>

에

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.6.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
</parent>

위의 모든 솔루션을 시도했지만 이것이 저에게 효과적입니다! 내 하루를 구 해주세요 !!!
— Harriet.O

2

제 경우에는 Intellij IDEA로 인해 기본적으로 Java 11을 기본 프로젝트 SDK로 설정했지만 프로젝트는 Java 8에서 구현되었습니다. 파일-> 프로젝트 구조-> 프로젝트 (프로젝트 설정)에서 "프로젝트 SDK"를 변경했습니다.


이것은 또한 내 문제였습니다. 새로 다운로드 한 IntellijIDEA로 Java8을 사용하는 이전 프로젝트를 열려고 할 때 이것이 해결책입니다.
— fakturk

macOS에 Java8을 설치하려면-brew cask install adaptopenjdk / openjdk / adoptopenjdk8
— fakturk

2

JPA를 사용하지 않고 대신 entityManagerFactory를 제외하고 SpringData JDBC 또는 Spring JDBC를 사용하는 것을 선호하는 경우 예외를 피하기 위해 Bean을 제외 할 수 있습니다.

@SpringBootApplication(exclude = {HibernateJpaAutoConfiguration.class})

1

최대 수영장 크기 값을 1에서 2로 변경하여 문제를 해결할 수있었습니다.

spring.datasource.hikari.maximum-pool-size = 2


1

@EnableTransactionManagement로 클래스에 주석을 추가하십시오. 나는 같은 문제에 직면했고 이것을 추가하여 해결되었습니다.

@EnableTransactionManagement
public class ConfigurationBean {
}

1

모델에 Serializable 구현을 추가하여이 문제를 해결했습니다.

@Entity
@Table(name="Model_Rest")
@IdClass(Model_Rest.class)
public class Model_Rest implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    /**
     * 
     */
    //@GeneratedValue(strategy = GenerationType.AUTO)
    //@Column(columnDefinition="id")

    @Id
    private String login;
    @Id
    private String password;




    @Autowired
    public String getLogin() {
        return login;
    }

    @Autowired
    public void setLogin(String login) {
        this.login = login;
    }

    @Autowired
    public String getPassword() {
        return password;
    }

    @Autowired
    public void setPassword(String password) {
        this.password = password;
    }

    public Model_Rest() {
        // TODO Auto-generated constructor stub
    }

    public Model_Rest(String login, String password) {
        this.login = login;
        this.password = password;
    }

    @Override
    public String toString() {
        return "Model_Rest [login=" + login + ", password=" + password + "]";
    }
  }

1

이 오류는 예를 들어 잘못된 db 이름을 제공했을 때 "spring.datasource.url"에 오류가 있다는 사실과도 관련이있을 수 있습니다.



0

JDK 1.8.0_201 또는 최신 버전을 사용하는 경우 이전 JDK에서 사용해보십시오.

JDK1.8.0_201과 동일한 문제가 있지만 코드 변경없이 JDK1.8.0_101에서 작동합니다.


0

저에게는 또 다른 오류의 결과였습니다

org.postgresql.util.PSQLException : FATAL : 사용자의 비밀번호 인증에 실패했습니다.

즉, 인증 자격 증명을 검토하기 만하면됩니다.


0

이 종속성을 추가 한 후 내 오류가 해결되었습니다.

<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-validator -->
    <dependency>
        <groupId>org.hibernate.validator</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>6.0.16.Final</version>
    </dependency>

0

봄 버전을 변경해보십시오. 나는 같은 문제가 있었고 그것은 나를 위해 일했습니다.


0

Eclipse Luna에서 동일한 문제가 발생했습니다. JDK12 및 Java 1.8을 사용하고 있음을 알았습니다. JDK를 JDK8로 변경했고 문제가 해결되었습니다. Eclipse에서 JDK를 확인하려면 다음으로 이동하십시오.

Window-> Preferences-> Java- >Installed JREs 

프로젝트와 호환되는지 확인하십시오. 행운을 빕니다!


0

나를 위해 그것은 application.properties의 데이터베이스 이름이었습니다. 올바른 이름을 제공하면 정상적으로 작동했습니다.



0

여전히 같은 문제가있는 사람. application.properties에 다음 줄을 추가하십시오.

# The SQL dialect makes Hibernate generate better SQL for the chosen database
## I am using Mysql8 so I have declared MySQL8Dialect if you have other versions just add ## that version number
spring.jpa.properties.hibernate.dialect =  org.hibernate.dialect.MySQL8Dialect

-1

나는 비슷한 오류를 겪었습니다. 오류가 더 일찍 발생하지 않았지만 최근에 내 oracle db를 다시 설치하고 인스턴스 이름을 'xe'에서 'orcl'로 변경했지만 속성 파일에서이 코드 부분을 변경하는 것을 잊었습니다.

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

'xe'에서 'orcl'로 변경하면 모든 것이 정상입니다.


-1

문제는 패키지 충돌 때문일 수 있습니다. @Id엔티티에서 주석 을 사용할 때 @IdSpring 프레임 워크를 사용할 수 있습니다 . 그러나 사용해야합니다@Id 지속성 API의 주석을 .

따라서 @javax.persistence.Id엔티티에 주석을 사용하십시오 .


클래스에 액세스하면 가져 오기를 통해 패키지 참조가있는 특정 클래스를 참조합니다. 그렇게하면 컴파일 시간 오류이며 처음에 모든 프로세스 중에 포착됩니다. 따라서 JPA 및 Spring에서 @Id와 충돌 할 가능성이 없습니다.
— Imam Bux

이 질문이 어떤 질문에 답하려고하는지 잘 모르겠지만이 질문은 아닙니다. @Id로 주석을 달거나하지 않아도 "연결 풀이 소진되었습니다. DataSourceBean에서 'maxPoolSize'및 / 또는 'borrowConnectionTimeout'을 늘려보십시오."
— Mark Rotteveel

-2

다음 종속성을 추가해보십시오.

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
   <groupId>com.h2database</groupId>
   <artifactId>h2</artifactId>
</dependency> 
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.