如何在hibernate中更新多个表?

San*_*ndy 6 java mysql sql hibernate

我有mySql查询,需要将其转移到hibernate查询.我已将简单查询转移到hibernate中.但是我很难转换"UPDATE"查询.下面是MySql查询,

StringBuilder query = new StringBuilder();
query.append("UPDATE  bus_transport.trip_calendar a ,");
query.append("bus_transport.trip_resource_allocator b,");
query.append("bus_transport.vehicle_calendar c ,");
query.append("bus_transport.driver_calendar d ");

query.append("SET c.vehicle_status_code='Available',");
query.append("a.route_code='" + jsonObjInside.getString("rCode") + "',");
query.append("a.trip_from_date_time='" + finalStartDateTime + "',");
query.append("a.trip_to_date_time='" + finalEndDateTime + "',");
query.append("b.emp_id='" + jsonObjInside.getString("driverId") + "' ,");
query.append("b.vehicle_id='" + jsonObjInside.getString("vehId") + "',");
query.append("c.vehicle_id='" + jsonObjInside.getString("vehId")+ "' ,");
query.append("d.emp_id='" + jsonObjInside.getString("driverId") + "'");

query.append("where a.trip_id='" + jsonObjInside.getString("tripId")+ "'");
query.append(" and b.trip_id='" + jsonObjInside.getString("tripId") + "'");
query.append("and c.trip_id='" + jsonObjInside.getString("tripId")+ "'");
query.append("and d.trip_id='" + jsonObjInside.getString("tripId")+ "' ");

int var = stmt.executeUpdate(query);     
Run Code Online (Sandbox Code Playgroud)

请帮我转换成Hibernate Update查询.

提前致谢.

Dur*_*dal 6

将更新语句转换为HQL与将任何SQL语句转换为HQL非常相似.假设您已经正确设置了对象映射,那么您只需要编写正确的HQL查询.您需要使用HQL(HQL Docs)语法.您使用已设置的对象名替换表和列名称.

这个:

UPDATE  bus_transport.trip_calendar a , bus_transport.trip_resource_allocator b,
bus_transport.vehicle_calendar c , bus_transport.driver_calendar d "
Run Code Online (Sandbox Code Playgroud)

可能会是这样的:

UPDATE  TripCalendar a , TripResourceAllocator b,
VehicleCalendar c , DriverCalendar d "
Run Code Online (Sandbox Code Playgroud)

您以类似的方式引用列

这个:

SET c.vehicle_status_code='Available'
Run Code Online (Sandbox Code Playgroud)

可能会成为这样的事情:

SET c.vehicleStatusCode = 'Available'
Run Code Online (Sandbox Code Playgroud)

有关Hiberate DML特定内容的更多信息,请查看以下链接:HQL DML Docs