У меня есть две таблицы: "DailyStatisti c" с ManyToOne для "Country".
public class DailyStatistic {
@Id
@GeneratedValue
private Long id;
@Column(columnDefinition = "DATE")
private LocalDate date;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "country_id")
private Country country;
///
public class Country {
@Id
@GeneratedValue
private Long id;
private String name;
Когда я звоню:
public interface DailyStatRepository extends JpaRepository<DailyStatistic, Long> {
...
List<DailyStatistic> findAllByCountryAndDateBetween(Country country, LocalDate from, LocalDate to);
...
}
Я получаю странный результат:
2020-03-29
2020-03-28
2020-03-27
2020-03-30
2020-03-29
Наборы Hibernate возражать против неправильной даты, и я получаю два разных объекта с одинаковой датой.
Пожалуйста, помогите решить проблему.
Код, где я вызываю этот метод:
public class DataProvider {
private final ForeignDataSource foreignDataSource;
private final DailyStatRepository repository;
private final CountryRepository countryRepository;
@Autowired
public DataProvider(ForeignDataSource foreignDataSource,
DailyStatRepository repository,
CountryRepository countryRepository) {
this.foreignDataSource = foreignDataSource;
this.repository = repository;
this.countryRepository = countryRepository;
}
public List<DailyStatistic> getCountryStatFromToDate(Long countryId,
LocalDate from,
LocalDate to) throws NoDataException {
Country country = countryRepository.findById(countryId).orElseThrow(NoDataException::new);
List<DailyStatistic> dailyStatisticList = repository.findAllByCountryAndDateBetween(country, from, to);
for (DailyStatistic ds : dailyStatisticList) {
System.out.println(ds.getDate());
}