В моей базе данных у меня есть две таблицы airport
и calendar
, соединенные клавишей foreight airport_id
.Я хочу получить ответ json с данными из двух таблиц для определенного airport_id=273
Например, я хочу получить данные для аэропорта с airport_id
и Календарь с передней клавишей airport_id
равен 273. На самом деле, я получил пустой ответ от localhost: 8080.Я не получил никакой ошибки, просто пустая страница, как на картинке ниже.Что я делаю не так?Заранее спасибо!
Airport.java
@Entity
@Table(name = "airport")
public class Airport {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer airport_id;
@Column(name = "departureAirport")
private String departureAirport;
@Column(name = "destinationAirport")
private String destinationAirport;
@OneToMany(mappedBy = "airport")
@JsonManagedReference("airport")
private List<Calendar> calendars; ....
Calendar.java
@Entity
@Table(name = "calendar")
public class Calendar {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer calendar_id;
@Column(name = "departureTime")
private Time departureTime;
@Column(name = "destinationTime")
private Time destinationTime;
@ManyToOne(targetEntity = Airport.class)
@JoinColumn(name = "airport_id")
@JsonBackReference("airport")
private Airport airport; ....
CalendarController.java
public class CalendarController {
@Autowired
CalendarService calendarService;
@Autowired
AirportService airportService;
@GetMapping(value = "/search/{airport_id}")
public List<Calendar> getCalendars(@PathVariable("airport_id") Integer airport_id) {
Airport airport = airportService.findOne(airport_id);
return calendarService.findOne(airport);
}}
CalendarRepository.java
public interface CalendarRepository extends CrudRepository<Calendar, Integer> {
Calendar getOne(int calendar_id);
List<Calendar> findByAirport(Airport airport_id);
}
CalendarService.java
public interface CalendarService {
List<Calendar> findOne(Airport airport_id);
}
CalendarServiceImpl.java
@Service
public class CalendarServiceImpl implements CalendarService {
@Autowired
CalendarRepository repository;
@Autowired
AirportRepository airportRepository;
@Override
public List<Calendar> getCalendars(Integer airport_id) {
Airport airport = airportRepository.getOne(airport_id);
return repository.findByAirport(airport);
}}
Обновление
AirpostService.java
public interface AirportService {
Airport findOne(int airport_id);
}
AirportRepository.java
public interface AirportRepository extends CrudRepository<Airport, Integer> {
Airport getOne(Integer airport_id);
}