如何在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);
请帮我转换成Hibernate Update查询。
提前致谢。
将update语句转换为HQL与将任何SQL语句转换为HQL非常相似。 假设您已经正确设置了对象映射,那么您只需要编写正确的HQL QUERY。 您需要使用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 "
可能会是这样的:
UPDATE TripCalendar a , TripResourceAllocator b, VehicleCalendar c , DriverCalendar d "
您以类似的方式引用列
这个:
SET c.vehicle_status_code='Available'
可能变成这样的东西:
SET c.vehicleStatusCode = 'Available'
有关Hiberate DML特定内容的更多信息,请查看以下链接: HQL DML Docs
- 数据库表中的多语言字段
- 如何将hibernate查询结果作为列表或hashmap的关联数组获取
- 使用Spring Hibernate的Google Appengine Cloud SQL问题
- Hibernate Criteria按子记录的数量排序
- JPA 2 @SequenceGenerator @GeneratedValue产生唯一约束违规
- Hibernate中不必要的查询 – MySql
- 使用Hibernate将Oracle Date映射到Java对象
- JPA / hibernate大集合
- 使用hibernate和gilead for gwt添加到实体类中保存的列表时的LazyInitializationException