#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>
, у него есть этот метод.
Поскольку вы предоставляете этот метод в репозитории, но не его реализацию. Это вызывает проблему.
Просто попробуйте, удалив его.