java spring maven jpa

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)