在我的数据库中,我有两个表airport
和calendar
通过快捷键airport_id
连接。我想从确定的airport_id=273
例如,我想使用airport_id
获取机场的数据,并使用快捷键airport_id
的Calendar等于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);
}
答案 0 :(得分:0)
问题不是您的休眠状态,而是您的控制器。您只需要在方法中添加@Responsebody
批注即可。 @ResponseBody
注释告诉控制器返回的对象会自动序列化为JSON。
@GetMapping(value = "/search/{airport_id}")
@ResponseBody
public List<Calendar> getCalendars(@PathVariable("airport_id") Integer airport_id) {
Airport airport = airportService.findOne(airport_id);
return calendarService.findOne(airport);
}}