java - 如何在 hibernate 中更新多个表?

标签 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);     

请帮我转换成 Hibernate 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

关于java - 如何在 hibernate 中更新多个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20943047/

相关文章:

c# - 阅读器关闭时调用 Read 的尝试无效。 (C#)

java - JBoss7 : class configured for SSLContext: sun. security.ssl.SSLContextImpl$TLS10Context 不是 SSLContext

java - 随机找不到类路径资源

java - 获取过去 7 天的数据,如果没有特定日期的数据,则返回 0

php - Mysql 第二次 JOIN 返回空数组

java - Hibernate 获取行在结果集中的位置

java - 将 JSON 字符串转换为 Java 对象以便在 JSP 中使用

java - 使用 JPA 存储/读取日期时出现时区相关问题

php - Mysql 需要很长时间来插入和更新 Yii Framework

java - 每次DELETE后执行SQL语句