【问题标题】:How to make join query in Hibernate using Spring MVC如何使用 Spring MVC 在 Hibernate 中进行连接查询
【发布时间】:2017-12-02 15:24:15
【问题描述】:

我有两张桌子。 :机场,航班时刻表。

它们之间有一对多的关系。

下面是休眠数据文件。

Airport.java:

public class Airport implements java.io.Serializable {

    private Integer airportId;
    private String airportName;
    private String airportCountry;
    private String airportCity;
    private Set<FlightSchedule> depFlightSchedule = new HashSet<FlightSchedule>(0);
    private Set<FlightSchedule> arrFlightSchedule = new HashSet<FlightSchedule>(0);

}

FlightSchedule.java:

public class FlightSchedule implements java.io.Serializable {

    private Integer flightscheduleId;
    private Date depDay;
    private Date depTime;
    private Date arrDay;
    private Date arrTime;
    private Double flightTime;
    private Integer price;
    private Set<BoardingPass> boardingPasses = new HashSet<BoardingPass>(0);

    private Airplane airplane;
    private Airport depAirport;
    private Airport arrAirport;

} 

在 FlightSchedule 中,它们必须与 Airport 有两个关系。因为他们需要“出发机场信息”和“到达机场信息”。

所以,如果我得到两个字符串输入(出发机场名称,到达机场名称),我想制作连接表(FlightSchedule X Airport)并打印所有信息。

例如,如果我有两个输入“韩国”和“澳大利亚”,那么我想打印关于离开韩国、到达澳大利亚的信息。

像这样! :

出发日期 |出发机场 |到达日期 |到达机场

2017-12-01 |仁川国际机场 | 2017-12-10 |悉尼国际机场

--出发日期,到达日期来自'FlightSchedule'表。

-- 出发机场名称,到达机场名称来自“机场”表。

其实我在mysql上试过这个:

SELECT * FROM flight_schedule as f

内联机场

on f.dep_airport_id=(select id from airport where airport.country='korea')

and f.arr_airport_id=(select id from airport where airport.country='Austrailia')

但这不是我想要的。

有什么解决办法吗?

【问题讨论】:

    标签: mysql spring hibernate


    【解决方案1】:

    现在您想在机场同时具有两个不同值的条件下执行与机场的连接,所以这是不可能的。对于每个条件,您必须使用此表进行两次连接。

    SELECT * FROM flight_schedule as f
    
    inner join airport a1
    
    on f.dep_airport_id=(select id from airport where a1.country='korea')
    
    inner join airport a2
    
    on f.arr_airport_id=(select id from airport where a2.country='Austrailia')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 2022-07-11
      • 2014-07-11
      • 2013-09-03
      相关资源
      最近更新 更多