почему объект не может сопоставить таблицу columns?

#java #spring #jpa #spring-data-jpa #entity

#java #spring #jpa #spring-data-jpa #объект

Вопрос:

у меня есть таблица mysql «страны» следующим образом

 | id | name | name2 | code | area | currency | language | population |
----------------------------------------------------------------------
| .. | ..   |   ... |   ...|  ....|  ...     |   ...    |   ...      |
  

этот объект «customCountry»:

 @Entity
@Table(name="countries")
public class customCountry {
    @Id
    @Column(name = "id",table ="countries")
     private Long id;

    @Column(name = "code",table ="countries")
     private Long code;

    @Column(name = "language",table ="countries")
     private String language;

   //constructors   getters/setters
}

  

у меня есть этот репозиторий :

 @Repository
public interface customCountryRepository extends JpaRepository<customCountry,Long>{

    
    List<customCountry> findAll();
}
  

и этот класс обслуживания :

 @Service
@ComponentScan(basePackages="repository")
public class countriesService {

    @Autowired
    customCountryRepository customcountry_repo;
    
    public List<customCountry> loadcustomcountries()
    {
        List<customCountry> validcustomcountries = customcountry_repo.findAll();
        System.out.println("size: " validcustomcountries.size());
        return validcustomcountries;
    }
}
  

проблема в том, что когда я вызвал этот сервисный метод в своем контроллере, я обнаружил, что size = 0 , но я не понимаю почему, я думаю, что я хорошо справился с отображением между атрибутами и столбцами.
Спасибо

Комментарии:

1. У вас в таблице есть строки данных? Или она пуста ..?

2. да! у меня есть строки данных в таблице

Ответ №1:

Вы можете удалить List<customCountry> findAll(); класс из репозитория.

Поскольку вы уже расширили JpaRepository<customCountry,Long> , у него есть этот метод.

Поскольку вы предоставляете этот метод в репозитории, но не его реализацию. Это вызывает проблему.

Просто попробуйте, удалив его.