简体   繁体   English

如何将多个MySql连接查询转换为Hibernate查询?

[英]How to convert multiple MySql join query into Hibernate Query?

I have query in Mysql which has more than two join in it mentioned below, 我在Mysql中查询,其中有两个以上提到的联接,

StringBuilder str_Resource=new StringBuilder();
str_Resource.append("SELECT * FROM BUS_TRANSPORT.TRIP_CALENDAR JOIN BUS_TRANSPORT.ROUTE_MASTER ON BUS_TRANSPORT.TRIP_CALENDAR.ROUTE_CODE=BUS_TRANSPORT.ROUTE_MASTER.ROUTE_CODE ");
str_Resource.append("JOIN BUS_TRANSPORT.TRIP_RESOURCE_ALLOCATOR ON BUS_TRANSPORT.TRIP_CALENDAR.TRIP_ID=BUS_TRANSPORT.TRIP_RESOURCE_ALLOCATOR.TRIP_ID ");
str_Resource.append("JOIN BUS_TRANSPORT.DRIVER_CALENDAR ON BUS_TRANSPORT.DRIVER_CALENDAR.EMP_ID=BUS_TRANSPORT.TRIP_RESOURCE_ALLOCATOR.EMP_ID AND ");
str_Resource.append("BUS_TRANSPORT.DRIVER_CALENDAR.TRIP_ID=BUS_TRANSPORT.TRIP_RESOURCE_ALLOCATOR.TRIP_ID ");
str_Resource.append("JOIN BUS_TRANSPORT.VEHICLE_CALENDAR ON BUS_TRANSPORT.VEHICLE_CALENDAR.VEHICLE_ID =BUS_TRANSPORT.TRIP_RESOURCE_ALLOCATOR.VEHICLE_ID AND ");
str_Resource.append("BUS_TRANSPORT.VEHICLE_CALENDAR.TRIP_ID =BUS_TRANSPORT.TRIP_RESOURCE_ALLOCATOR.TRIP_ID ");
str_Resource.append("JOIN BUS_TRANSPORT.EMP_MASTER ON BUS_TRANSPORT.EMP_MASTER.EMP_ID=BUS_TRANSPORT.DRIVER_CALENDAR.EMP_ID ");
str_Resource.append("JOIN BUS_TRANSPORT.VEHICLE_MASTER ON BUS_TRANSPORT.VEHICLE_MASTER.VEHICLE_ID=BUS_TRANSPORT.VEHICLE_CALENDAR.VEHICLE_ID ");
str_Resource.append("where BUS_TRANSPORT.TRIP_CALENDAR.trip_from_date_time >= NOW() and BUS_TRANSPORT.TRIP_CALENDAR.trip_from_date_time <= (DATE_ADD(NOW(), INTERVAL 6 DAY)) ");

ResultSet resourceAllRS=stmt.executeQuery(str_Resource.toString());

while (resourceAllRS.next()){
    JSONObject obj=new JSONObject();

    obj.put("rCode", resourceAllRS.getString("ROUTE_CODE"));
    obj.put("rName", resourceAllRS.getString("ROUTE_NAME"));
    obj.put("source", resourceAllRS.getString("source"));
    obj.put("destination", resourceAllRS.getString("destination"));
    obj.put("tripStartDate", CommonFunctions.dateConvert(resourceAllRS.getString("TRIP_FROM_DATE_TIME").toString()) );
    obj.put("tripstartTime", CommonFunctions.timeConvert(resourceAllRS.getString("TRIP_FROM_DATE_TIME").toString()));
    obj.put("tripEndDate", CommonFunctions.dateConvert(resourceAllRS.getString("TRIP_TO_DATE_TIME").toString()));
    obj.put("tripEndTime", CommonFunctions.timeConvert(resourceAllRS.getString("TRIP_TO_DATE_TIME").toString()));
    obj.put("driverId", resourceAllRS.getString("EMP_ID"));
    obj.put("driverName", resourceAllRS.getString("EMP_NAME"));
    obj.put("vehId", resourceAllRS.getString("VEHICLE_ID"));
    obj.put("vehicleType", resourceAllRS.getString("BUS_TYPE"));
    obj.put("tripId", resourceAllRS.getString("TRIP_ID"));

    array.put(obj);
    System.out.println("obj is "+obj);
}

I have done simple query conversion into hibernate queries. 我已经完成了从简单查询到休眠查询的转换。 I have all pojo classes bound to tables. 我将所有pojo类都绑定到了表。 Please guide me how to convert multiple join query into one hibernate query. 请指导我如何将多个联接查询转换为一个休眠查询。

无需在休眠状态下进行联接查询,而是可以以编程方式处理此问题,因为您具有表的pojo类。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM