【发布时间】:2020-07-21 15:57:22
【问题描述】:
下面的 SQL 中的 grails GORM 标准是什么
订单表:
- 订单号
- 客户 ID
- 订购日期
客户表:
- 客户 ID
- 客户姓名
- 联系人姓名
- 国家
请注意,“订单”表中的“客户 ID”列指的是 “客户”表中的“客户 ID”。之间的关系 上面的两个表是“CustomerID”列。 然后,我们可以创建以下 SQL 语句(包含一个 INNER JOIN),它选择两个表中具有匹配值的记录:strong text
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;
Sql 将使用这些列生成这些数据
- 订单编号
- 客户名称
- 订购日期
GORM 模型:
class Order{
Long orderId
Long customerId
def orderDate
}
class Customer{
Long customerID
Long customerName
def contactName
def country
}
【问题讨论】:
-
到目前为止您尝试了哪些但没有成功?
-
您显示的 SQL 对应于您的持久性模型,它可能会或可能不会直接映射到您的对象模型。当使用 GORM 表达查询时,您总是根据您的对象模型而不是持久性模型来表达查询。要确定如何表达查询,您需要显示您的
Orders类与您的Customers类(或映射到这些表的任何类)之间的关系。是不是你有一个Orders类,其中有一个名为OrderDate的属性,它引用另一个名为Customers的类的实例? -
详情w3schools.com/sql/sql_join.asp@JeffScottBrown
-
问题已更新详细信息@JeffScottBrown
-
@Tanvir。您正在描述持久性模型,而不是对象模型。 GORM 要求您根据对象模型来表达您的查询。您是否有一个 Orders 类,其中有一个名为 OrderDate 的属性,该属性引用另一个名为 Customers 的类的实例?我问的是课程,而不是桌子。
标签: sql hibernate grails grails-orm