java - IllegalArgumentException: al menos un metamodelo JPA debe estar presente
spring maven (4)
Esto funcionó para mí.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<exclusions>
<exclusion>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
</exclusion>
<exclusion>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.10.Final</version>
</dependency>
mientras comenzaba con el descanso de primavera recibí el siguiente error como
org.springframework.beans.factory.BeanCreationException: Error al crear un bean con el nombre ''jpaMappingContext'': error en la invocación del método init; La excepción anidada es java.lang.IllegalArgumentException: ¡Al menos un metamodelo JPA debe estar presente! en org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean (AbstractAutowireCapableBeanFactory.java:1595) ~ [spring-beans-5.0.0.BUILD-SNAPSHOT.jar: 5.0.0.BUILD-SNAPSHOT. beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:566) ~ [spring-beans-5.0.0.BUILD-SNAPSHOT.jar: 5.0.0.BUILD-SNAPSHOT] en org.sansportfawork.supportfactory.support.me .AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:482) ~ [spring-beans-5.0.0.BUILD-SNAPSHOT.jar: 5.0.0.BUILD-SNAPSHOT] en org.springframework.beans.factory.aport.Factory. (AbstractBeanFactory.java:304) ~ [spring-beans-5.0.0.BUILD-SNAPSHOT.jar: 5.0.0.BUILD-SNAPSHOT] en org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java 230) ~ [spring-beans-5.0.0.BUILD-SNAPSHOT.jar: 5.0.0.BUILD-SNAPSHOT] en org.springframework.beans.factory.suppo rt.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:300) ~ [spring-beans-5.0.0.BUILD-SNAPSHOT.jar: 5.0.0.BUILD-SNAPSHOT] en org.springframework.beans.factory.support.AbstractBeanFactory.get (AbstractBeanFactory.java:195) ~ [spring-beans-5.0.0.BUILD-SNAPSHOT.jar: 5.0.0.BUILD-SNAPSHOT] en org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons: DefaultListableBean: DefaultListableBean: DefaultListableBean: DefaultListableBean 725) ~ [spring-beans-5.0.0.BUILD-SNAPSHOT.jar: 5.0.0.BUILD-SNAPSHOT] en org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization (AbstractApplicationContext.java:866) ~ [spring-context -5.0.0.BUILD-SNAPSHOT.jar: 5.0.0.BUILD-SNAPSHOT] en org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:542) ~ [spring-context-5.0.0.BUILD- SNAPSHOT.jar: 5.0.0.BUILD-SNAPSHOT] en org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh (EmbeddedWebApplicationContext.java:122) ~ [spring-boot-2.0) .0.BUILD-SNAPSHOT.jar: 2.0.0.BUILD-SNAPSHOT] en org.springframework.boot.SpringApplication.refresh (SpringApplication.java:736) [spring-boot-2.0.0.BUILD-SNAPSHOT.jar: 2.0 .0.BUILD-SNAPSHOT] en org.springframework.boot.SpringApplication.refreshContext (SpringApplication.java:369) [spring-boot-2.0.0.BUILD-SNAPSHOT.jar: 2.0.0.BUILD-SNAPSHOT] en org. springframework.boot.SpringApplication.run (SpringApplication.java:313) [spring-boot-2.0.0.BUILD-SNAPSHOT.jar: 2.0.0.BUILD-SNAPSHOT] en org.springframework.boot.SpringApplication.run (SpringApplication. java: 1161) [spring-boot-2.0.0.BUILD-SNAPSHOT.jar: 2.0.0.BUILD-SNAPSHOT] en org.springframework.boot.SpringApplication.run (SpringApplication.java:1150) [spring-boot-2.0 .0.BUILD-SNAPSHOT.jar: 2.0.0.BUILD-SNAPSHOT] en com.java.app.QuickPollApplication.main (QuickPollApplication.java:14) [classes /: na] Causado por: java.lang.IllegalArgumentException: At ¡Al menos un metamodelo JPA debe estar presente! en org.springframework.util.Assert.notEmpty (Assert.java:438) ~ [spring-core-5.0.0.BUILD-SNAPSHOT.jar: 5.0.0.BUILD-SNAPSHOT] en org.springframework.data.jpa. mapping.JpaMetamodelMappingContext. (JpaMetamodelMappingContext.java:52) ~ [spring-data-jpa-1.11.0.BUILD-SNAPSHOT.jar: na] at org.springframework.data.jpa.repository.config.JpaMetamodelMappingContextFactoryean. java: 71) ~ [spring-data-jpa-1.11.0.BUILD-SNAPSHOT.jar: na] en org.springframework.data.jpa.repository.config.JpaMetamodelMappingContextFactoryBean.createInstance (JpaMetamodelMappingContextFactoryBean ~ 26). -data-jpa-1.11.0.BUILD-SNAPSHOT.jar: na] en org.springframework.beans.factory.config.AbstractFactoryBean.afterPropertiesSet (AbstractFactoryBean.java:134) ~ [spring-beans-5.0.0.BUILD- SNAPSHOT.jar: 5.0.0.BUILD-SNAPSHOT] en org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods (AbstractAutowireCapableBeanFactory.java:1654) ~ [spring-be ans-5.0.0.BUILD-SNAPSHOT.jar: 5.0.0.BUILD-SNAPSHOT] en org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean (AbstractAutowireCapableBeanFactory.java:1591 ).0.0-spring beans 5.0 -.0-spring beans .BUILD-SNAPSHOT.jar: 5.0.0.BUILD-SNAPSHOT] ... 16 marcos comunes omitidos
con el siguiente código
@SpringBootApplication
@RestController
public class QuickPollApplication {
public static void main(String[] args) {
SpringApplication.run(QuickPollApplication.class, args);
}
@RequestMapping(value = "/test", method = RequestMethod.GET)
public String testRest() {
return "rest tested";
}
y el siguiente es mi pom.xml
UTF-8 UTF-8 1.8
<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-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web-services</artifactId>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</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</groupId>
<artifactId>spring-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
Por favor, ayúdame. No se como resolver este error
Has añadido
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
en tu pom.xml.
Spring boot intentará crear automáticamente una fábrica de entidades para JPA, pero no ha definido nada con respecto a los modelos JPA.
Intenta eliminarlo para probar lo que has hecho hasta ahora.
Luego puedes consultar un tutorial usando spring-data-starter-jpa como este chico
Lo arreglé configurando una versión más nueva de Hibernate.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<exclusions>
<exclusion>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
</exclusion>
<exclusion>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.10.Final</version>
</dependency>
Puede encontrar un ejemplo completamente funcional aquí: https://github.com/zobarov/ptc-task-executor
También puede deshabilitar el soporte del repositorio de Spring Data JPA excluyendo la siguiente clase de configuración automática (por ejemplo, en su anotación
@EnableAutoConfiguration
o
@SpringBootApplication
)
org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration
Por ejemplo:
@EnableAutoConfiguration(exclude = JpaRepositoriesAutoConfiguration.class)