Witam. Robię sobie prosty projekt do przećwiczenia Spring-JPA i mam błąd, którego za bardzo nie rozumiem. Korzystam z bazy danych world i tabeli city, która ma pięć rekordów: ID, Name, CountryCode, District, Population. Dwie małe klasy i jeden interfejs wyglądają tak:
City:
@NoArgsConstructor
@Entity
@Table(name = "city")
@Getter
@Setter
@AllArgsConstructor
//@RequiredArgsConstructor
@ToString
public class City {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
int id;
String name;
String countryCode;
String district;
int population;
}
CityRepository:
package mainPackage.cityPackage;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface CityRepository extends JpaRepository<City, Long> {
List<City> findCityByCountryCode(String code);
}
Main:
@SpringBootApplication
public class Main implements CommandLineRunner {
@Autowired
CityRepository cityRepository;
public static void main(String[] args) {
SpringApplication.run(mainPackage.Main.class, args);
}
@Override
public void run(String... args) throws Exception {
List<City> cities = cityRepository.findCityByCountryCode("MEX");
cities.forEach(System.out::println);
}}
No i ciągle wywala mi błąd Unknown column 'city0_.country_code' in 'field list'
Wiele razy sprawdzałem czy nie pomyliłem się w nazwie klasy,
w nazwach i typach zmiennych. Gdzieś czytałem, że konwencja jest taka, że w klasie 'entity' nazwy zmiennych mają się zaczynać od małych liter. Zmieniłem to i dalej wywala ten sam błąd. Zastanawiam się, czy możliwe że to przez to, że 'CountryCode' to główny klucz z innej tabeli i że trzeba to jakoś oznaczyć. No ale wolałem się zapytać, żeby znowu nie przesiedzieć paru godzin, jeśli to nie to. Byłbym wdzięczny za pomoc.