Spring Boot EnableJpaRepositories Fehler

Ich bin Bau-app mit Spring-boot und hibernate und nach hinzufügen von repository, erhalte ich diese Fehlermeldung:

[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.2.7.RELEASE:run (default-cli) on project app: An exception occured while running. null: InvocationTargetException: Failed to read candidate component class: file [/home/scabbard/projects/app/app-back-end/target/classes/com/springapp/app/config/RepositoryConfig.class]; nested exception is java.lang.annotation.AnnotationFormatError: Invalid default: public abstract java.lang.Class org.springframework.data.jpa.repository.config.EnableJpaRepositories.repositoryBaseClass() -> [Help 1]

So wie es aussieht ist das problem mit EnableJpaRepositories, aber kann nicht herausfinden, warum.

Hier andere Dateien:

repository-Datei

package com.springapp.app.repository;

import com.springapp.app.entity.PressEntity;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface PressRepository extends JpaRepository<PressEntity, Long> {
}

Konfigurationsdatei

package com.springapp.app.config;

import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.orm.jpa.EntityScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;

@Configuration
@EnableJpaRepositories("com.springapp.app.repository")
@EnableAutoConfiguration
@EntityScan("com.springapp.app.entity")
public class RepositoryConfig {
}

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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.springapp.app</groupId>
    <artifactId>app</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>App</name>

    <!-- Inherit defaults from Spring Boot -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.2.7.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>1.2.7.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-jpa</artifactId>
            <version>1.9.0.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>9.4-1205-jdbc42</version>
        </dependency>

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

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-annotations</artifactId>
            <version>3.5.6-Final</version>
        </dependency>


    </dependencies>

    <properties>
        <java.version>1.8</java.version>
    </properties>

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

    <repositories>
        <repository>
            <id>spring-releases</id>
            <url>https://repo.spring.io/libs-release</url>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>spring-releases</id>
            <url>https://repo.spring.io/libs-release</url>
        </pluginRepository>
    </pluginRepositories>

</project>
Zuerst sollten Sie entfernen Sie die Abhängigkeit der hibernate-annotations. Dies ist nicht mehr notwendig und kann zu Abhängigkeit führen Konflikte. Zweitens, schlage ich vor, verwenden Sie die Abhängigkeit "spring-boot-starter-data-jpa" anstelle von "spring-data-jpa".
Könnten Sie mir erklären, warum der Hibernate-Abhängigkeiten werden nicht benötigt, da denke ich "spring-boot-starter-data-jpa" bereits hat, aber nicht verstehen, warum?
hibernate-annotations ist nicht erforderlich. Wie Sie sehen können, ist die version von hibernate-annotations ist 3.5.6, so ist es ziemlich alt, und nicht mehr mit neueren hibernate-Versionen. "spring-boot-starter-data-jpa" bringen wird, in den Ruhezustand als Standard-JPA-provider, so können Sie wählen, entfernen Sie die hibernate-entitymanager-Abhängigkeit oder lassen Sie es in der POM, ist es egal.
Danke für die Erklärung, es wirklich half mir lösen mein Problem.

InformationsquelleAutor Shota | 2015-11-17

Schreibe einen Kommentar