클래스 경로 자원에 정의 된 이름이 '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-corehibernate-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.