Тип org.springframework.data.repository.Repository не может быть разрешен. На него косвенно ссылаются необходимые файлы.class

Я новичок в Spring Boot, у меня возникла эта проблема, когда я следую Spring Guide-Доступ к данным с MySQL

Я получил ошибку в моей STS IDE, я не знаю, что, черт возьми, происходит. в src/main/java/UserRepository.java

 package hello;

 import org.springframework.data.repository.CrudRepository;

 import hello.User;



  public interface UserRepository extends CrudRepository<User, Long> {

}

STS предупреждает меня об этой ошибке, я игнорирую ее, пока не пойду Cmd: mvn spring-boot так что я вернулся, чтобы проверить предупреждение, это:

The type org.springframework.data.repository.Repository cannot be 
resolved. It is indirectly referenced from required .class files

Большое спасибо за помощь!

Я составил проект, используя Maven, как рекомендовано, 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>org.springframework</groupId>
    <artifactId>gs-mysql-data</artifactId>
    <version>0.1.0</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.0.RELEASE</version>
    </parent>

    <dependencies>
        
    
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        
        <!-- JPA Data (We are going to use Repositories, Entities, Hibernate, etc...) -->
        
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        
        <!-- Use MySQL Connector-J -->
        
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

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

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

2 ответа

Решение

Примените некоторые весенние стандарты загрузки к коду

  1. Держите ваше загрузочное приложение поверх пакета, в вашем случае ваше BootApplication должно быть в пакете hello. Как показано ниже

    @SpringBootApplication
    public class BootApplication extends SpringBootServletInitializer {
    
    public static void main(String args[]) {
    SpringApplication.run(BootApplication.class, args);
    }
    }
    
  2. Теперь держите свой репозиторий внутри подпакета hello. В вашем случае это должно быть в hello.repository

Теперь попробуйте запустить BootApplication.

Приятель, это не работает в любом случае. Это исключение вызвано CrudRepository. Затмение не может разрешить этот класс. Мой проект очень прост, я получил этот проект из весеннего сайта website.its: доступ к данным с MySQL

И теперь мой проект полностью такой же, как [gs-accessing-data-mysql-complete]

Официальный веб-сайт Spring считает этот проект успешным и позволяет тренеру проверять [gs-accessing-data-mysql-initial] на соответствие [gs-accessing-data-mysql-complete]. Однако, даже более поздняя версия не может быть собрана успешно. Моя структура проекта:

 src
     +main
        +java
          +hello
              --Application.java
              --MainController.java
              --User.java
              --UserRepository.java

и информацию о журнале, мне лучше показать вам дайджест: 1. [ОШИБКА] Не удалось выполнить цель org.springframework.boot:spring-boot-maven-plugin:2.0.0.RELEASE:run (default-cli) on project gs-mysql-data: во время работы возникла исключительная ситуация. null: InvocationTargetException: Ошибка создания компонента с именем 'mainController', определенным в файле [D:\workbunch\Spring Workbunch\gs-accessing-data-mysql-initial\target\classes\hello\MainController.class]: постобработка объединенного определение бина не удалось; Вложенное исключение - java.lang.IllegalStateException: не удалось проанализировать класс [hello.MainController] из ClassLoader [java.net.URLClassLoader@6424f2f4]: org/springframework/data/repository/CrudRepository: org.springfradory.ru.info.ru > [Помощь 1]

Другие вопросы по тегам