Erreur lors de la création du bean avec le nom 'entityManagerFactory' défini dans la ressource de chemin de classe: l'invocation de la méthode init a échoué

115

Lorsque je compile mon projet de printemps, j'ai eu l'erreur suivante.

Erreur lors de la création du bean avec le nom 'entityManagerFactory' défini dans la ressource de chemin de classe [org / springframework / boot / autoconfigure / orm / jpa / HibernateJpaAutoConfiguration.class]: l'invocation de la méthode init a échoué

J'utilise STS Eclipse et MySql Database

Ma chaîne de connexion Application.Propertiesest

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

L'erreur détaillée est donnée ci-dessous

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

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>
thevikasdube
la source
3
Clairement, l '"erreur" que vous avez obtenue était en fait "causée par: com.atomikos.jdbc.AtomikosSQLException: pool de connexions épuisé - essayez d'augmenter' maxPoolSize 'et / ou' borrowConnectionTimeout 'sur le DataSourceBean."
Neil Stockton

Réponses:

78

Je commencerais par ajouter la dépendance suivante:

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

et

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

MISE À JOUR : Ou ajoutez simplement la dépendance suivante.

<dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.3.0</version>
</dependency>
caketestico
la source
33
@ georges-van J'ai rencontré la même erreur, et les 2 dépendances que vous avez mentionnées sont déjà présentes dans spring-boot-starter-data-jpaj'obtiens l'erreur suivante. anotepad.com/notes/wpjr5g
@georgesvan j'ai déjà les pots ci-dessus que vous avez mentionnés importés de Spring Boot. Ce que vous pensez peut être la raison de cette même erreur. Je rencontre exactement le même problème lorsque j'ajoute des dépendances liées à la mise en veille prolongée. Lorsque j'utilise des fichiers java du package javax.persistence, tout va bien, mais lorsque j'utilise des fichiers java du package org.hibernate, cette même erreur apparaît.
user641887
1
Utilisez simplement les mêmes versions que celles mentionnées dans l'article.
Shahab A
4
@georges, thevikasdube utilise déjà la dépendance spring-boot-starter-data-jpa qui inclut Hibernate. Une raison pour laquelle il devrait inclure explicitement les dépendances d'hibernation ??
Mav55
6
FYI hibernate-entitymanagerest désormais obsolète. Utilisez hibernate-coreplutôt (uniquement) .
Bohème
74

Les personnes utilisant java 9 incluent cette dépendance: -

<dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.3.0</version>
</dependency>
Rahul Jangra
la source
4
Pour ceux qui s'intéressent aux raisons pour lesquelles les versions postérieures à Java 8 nécessitent cette inclusion explicite, il y a un article intéressant ici; baeldung.com/java-9-jaxbexception , essentiellement lié à l'introduction de Java 9s du système modulaire et à une tentative de réduire toutes les bibliothèques qui ne sont pas essentielles ...
Ouverture
Cela a fonctionné pour moi même si j'utilise Java 8, merci.
ahmetcetin le
Qu'est-ce que cela pourrait être pour Gradle?
FlexEast
Cela a résolu; y problème, merci
bileleleuch
18

L'ajout de dépendances n'a pas résolu le problème de mon côté.

Le problème se produisait de mon côté à cause de champs "supplémentaires" qui font partie de la classe "@Entity" et n'existent pas dans la base de données.

J'ai supprimé les champs supplémentaires de la classe @Entity et cela a fonctionné.

Bonne chance.

JAD
la source
1
Que voulez-vous dire par des champs supplémentaires ?? Pourriez-vous donner plus d'informations à ce sujet.? J'ai le même problème maintenant
Bandham Manikanta
Je voulais dire des propriétés supplémentaires qui n'existent pas dans la base de données, telles que des entiers privés / publics..etc
JAD
Travaillé.! Dans ma classe Entity, il y avait deux constructeurs (arg, no-arg)., Je les ai supprimés et cela a fonctionné. Merci @JAD. bon codage.
Bandham Manikanta
Oui, ce problème peut être lié à un problème dans l'une des classes d'entités.
zee
Travaillé! L'erreur n'était pas un problème de configuration de dépendance ou de gestionnaire d'entités. Le problème était celui de ma classe d'entité. Après avoir créé mes classes d'entités avec l'aide du gestionnaire de persistance, le problème est résolu. Merci.
Peter
9

J'ai également fait face au même problème. J'utilisais Java9 et la dépendance suivante dans le fichier 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>

Le problème a été résolu après l'ajout de la dépendance ci-dessous dans pom:

    <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.3.0</version>
    </dependency>
GG
la source
8
Ceci est un double de la réponse de Rahul Jangra: stackoverflow.com/a/49707331/636009
David Conrad
7

Je soupçonne que les fichiers jar hibernate-coreet les hibernate-entitymanagerdépendances sont corrompus ou n'ont pas été installés correctement sur votre machine.

Je vous suggère de supprimerhibernate-corehibernate-entitymanager simplement les dossiers nommés et de votre référentiel local Maven et Maven les réinstallera.

L'emplacement par défaut du référentiel local Maven est C:\Documents and Settings\[USERNAME]\.m2dans Windows ou ~/.m2sous Linux / Mac.

Hesham Usama
la source
Cela a fonctionné pour moi, j'avais mis à jour la version Spring Boot de 1.5 à 2.3 et recevais cette erreur.
Ali786
J'ai supprimé mon référentiel complet et cela fonctionne. Il a résolu cela et beaucoup d'autres erreurs avec Spring Boot
Eduardo Pascual Aseff
5

Dans mon cas, la suppression de l'une des annotations ci-dessous provoque l'affichage du message d'erreur «entityManagerFactory», par exemple.

 @Id
  @GeneratedValue(strategy=GenerationType.AUTO)

ou

@ManyToMany(targetEntity=listOfObject_x.class)

Le message d'erreur disparaît après l'ajout des annotations manquantes.

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();
  }
}
zee
la source
5

J'ai jdk-12.0.2.jdk, j'ai trouvé une solution au problème, ajoutez des dépendances à 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>
Diego Santa Cruz Mendezú
la source
1
Merci, j'utilise aussi JDK 12 et c'est le seul qui fonctionne pour moi.
Du
Quelqu'un peut-il expliquer pourquoi l'ajout de ces dépendances a résolu l'erreur pour certains d'entre nous?
Keegs le
4

Pour ceux qui utilisent Gradle au lieu de Maven, ajoutez ceci aux dépendances dans votre fichier de construction:

compile('javax.xml.bind:jaxb-api:2.3.0')
smo0f
la source
3

J'ai résolu le mien en mettant à jour les versions des dépendances de printemps de 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>
soscler
la source
J'ai essayé toutes les solutions ci-dessus mais cela ne fonctionne que pour moi! Sauve ma journée !!!
Harriet.O
2

Dans mon cas, cela était dû au fait qu'Intellij IDEA a défini par défaut Java 11 comme SDK de projet par défaut, mais le projet a été implémenté dans Java 8. J'ai changé "Project SDK" dans Fichier -> Structure du projet -> Projet (dans les paramètres du projet)

Daniyar
la source
C'était aussi mon problème, lorsque vous essayez d'ouvrir un ancien projet qui utilise Java8 avec le nouvel IntellijIDEA téléchargé, c'est la solution.
fakturk
Pour installer Java8 sur macOS - Installation de brew cask adoptopenjdk / openjdk / adoptopenjdk8
fakturk
2

Pour ceux qui n'utilisent pas JPA et préfèrent à la place exclure l'entitéManagerFactory et utiliser Spring Data JDBC ou Spring JDBC peuvent exclure le bean pour éviter l'exception

@SpringBootApplication(exclude = {HibernateJpaAutoConfiguration.class})
Mohammad Javed
la source
1

J'ai pu résoudre le problème en modifiant la valeur de la taille maximale du pool de un à deux

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

user3743729
la source
1

Essayez d'annoter la classe avec @EnableTransactionManagement. J'étais confronté au même problème et il a été résolu en ajoutant ceci.

@EnableTransactionManagement
public class ConfigurationBean {
}
VaibhavD
la source
1

J'ai résolu ce problème en ajoutant des implémentations sérialisables dans le modèle.

@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 + "]";
    }
  }
Kashyap Neeraj
la source
1

Cette erreur peut également être liée au fait que vous avez une erreur dans votre "spring.datasource.url" lorsque vous avez donné un mauvais nom de base de données par exemple

G. Adnane
la source
0

utilisez @Id .Travaillé pour moi.Sinon, je vais lancer une erreur.Cela dépend de s'il manque quelque chose dans votre classe d'entité ou votre référentiel

Raj Kumar Mishra
la source
0

Si vous utilisez JDK 1.8.0_201 ou la dernière version, essayez-le avec un JDK plus ancien.

J'ai le même problème avec JDK1.8.0_201, mais cela fonctionne avec JDK1.8.0_101 sans aucun changement de code.

Sin2
la source
0

Pour moi, c'était le résultat d'une autre erreur

org.postgresql.util.PSQLException: FATAL: l'authentification par mot de passe a échoué pour l'utilisateur

Ce qui signifie qu'il vous suffit de vérifier vos informations d'authentification

Tanel
la source
0

Mon erreur a été résolue après avoir ajouté cette dépendance.

<!-- 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>
Lis
la source
0

Essayez de changer la version du printemps. J'ai eu le même problème et cela a fonctionné pour moi

Nax
la source
0

J'ai eu le même problème sur mon Eclipse Luna. Je comprends que j'utilise JDK12 et Java 1.8. J'ai changé JDK en JDK8 et le problème a été résolu. Si vous souhaitez vérifier votre JDK dans Eclipse, accédez à

Window-> Preferences-> Java- >Installed JREs 

et vérifiez s'ils sont compatibles avec votre projet. Bonne chance!

Andrew
la source
0

Pour moi, c'était le nom de la base de données sur application.properties. Quand j'ai fourni le nom correct, cela fonctionnait bien.

Poçi
la source
0

J'ai résolu le mien en définissant une annotation de relation inverse pour un champ supplémentaire

Anirudh Khanna
la source
0

Celui qui a encore le même problème. Veuillez ajouter la ligne suivante dans 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
Tareq Islam
la source
-1

J'ai traversé une erreur similaire. L'erreur ne venait pas plus tôt, mais récemment, je réinstalle ma base de données oracle et change le nom de l'instance de 'xe' à 'orcl', mais j'oublie de changer ce morceau de code dans le fichier de propriétés:

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

Une fois que je l'ai changé de «xe» à «orcl», tout va bien.

RBuser2769569
la source
-1

Le problème peut être dû à des conflits de packages. Lorsque vous utilisez une @Idannotation dans une entité, elle peut utiliser le @Idframework Spring; cependant, il doit utiliser l' @Idannotation de l'API de persistance.

Utilisez donc l' @javax.persistence.Idannotation dans les entités.

oruc
la source
Si vous accédez à la classe, il fait référence à la classe spécifique avec la référence du package via l'importation. Si vous le faites, il s'agit d'une erreur de compilation et est interceptée pendant tout processus en premier lieu. Il n'y a donc aucune chance d'avoir un conflit avec @Id avec JPA et Spring.
Imam Bux
Je ne sais pas à quelle question cela tente de répondre, mais ce n'est pas cette question. Le fait d'avoir annoté (ou pas) avec @Id n'entraînera pas une trace de pile d'erreur indiquant «Pool de connexions épuisé - essayez d'augmenter 'maxPoolSize' et / ou 'borrowConnectionTimeout' sur le DataSourceBean.»
Mark Rotteveel
-2

Essayez d'ajouter les dépendances suivantes.

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
   <groupId>com.h2database</groupId>
   <artifactId>h2</artifactId>
</dependency> 
Pranay Vikram
la source