嵌入式 Grails sql 次浏览
embedded grails sql views
我对在域 classes 中使用 sql 视图和 "embedded" 字段有疑问。我创建了一个 sql 视图(其中包含名称、shipping_name、billing_name 列),我将其与建模域 class 相关联,如下所示。两个 classes 在同一个文件中。我试图将 WebOrdressAddress 移动到它自己的文件中(在 src/main/groovy 中),但它不起作用。
class WebOrderView {
String name
WebOrderAddress shipping
WebOrderAddress billing
static embedded = ["shipping", "billing"]
static mapping = {
table 'web_order_vw'
version false
}
}
class WebOrderAddress {
String name
}
当我使用取景器(如 WebOrderView.findByName('test'))时,我得到 "null"。如果我注释行 "embedded"、"shipping"、"billing" 并且我使用相同的查找器,我会得到一个结果。你能告诉我嵌入式字段有什么问题吗?嵌入字段是否适用于 sql 视图?我正在使用 Grails 3.2.11
谢谢
在看到 gorm 中的一个奇怪行为后,我终于找到了解决方案。我在 sql 视图(以及 WebOrderView 域 class 中)重命名了 "name" 字段。
class WebOrderView {
String pname
WebOrderAddress shipping
WebOrderAddress billing
static embedded = ["shipping", "billing"]
static mapping = {
table 'web_order_vw'
version false
}
}
class WebOrderAddress {
String name
}
在启用 SQL 的情况下,没有嵌入字段,我得到以下 sql
select
this_.name as name1_18_0_,
from
web_order_vw this_
where
this_.name=? limit ?
如果我使用嵌入式字段,字段 WebOrderView.name 已被 billing_name 替换(为什么是 GORM?!)并且生成的标准不相同(即使我使用相同的查找器)
select
this_.billing_name as billing18_18_0_,
this_.shipping_name as shippin25_18_0_
from
web_order_vw this_
where
this_.billing_name=? limit ?
我对在域 classes 中使用 sql 视图和 "embedded" 字段有疑问。我创建了一个 sql 视图(其中包含名称、shipping_name、billing_name 列),我将其与建模域 class 相关联,如下所示。两个 classes 在同一个文件中。我试图将 WebOrdressAddress 移动到它自己的文件中(在 src/main/groovy 中),但它不起作用。
class WebOrderView {
String name
WebOrderAddress shipping
WebOrderAddress billing
static embedded = ["shipping", "billing"]
static mapping = {
table 'web_order_vw'
version false
}
}
class WebOrderAddress {
String name
}
当我使用取景器(如 WebOrderView.findByName('test'))时,我得到 "null"。如果我注释行 "embedded"、"shipping"、"billing" 并且我使用相同的查找器,我会得到一个结果。你能告诉我嵌入式字段有什么问题吗?嵌入字段是否适用于 sql 视图?我正在使用 Grails 3.2.11
谢谢
在看到 gorm 中的一个奇怪行为后,我终于找到了解决方案。我在 sql 视图(以及 WebOrderView 域 class 中)重命名了 "name" 字段。
class WebOrderView {
String pname
WebOrderAddress shipping
WebOrderAddress billing
static embedded = ["shipping", "billing"]
static mapping = {
table 'web_order_vw'
version false
}
}
class WebOrderAddress {
String name
}
在启用 SQL 的情况下,没有嵌入字段,我得到以下 sql
select
this_.name as name1_18_0_,
from
web_order_vw this_
where
this_.name=? limit ?
如果我使用嵌入式字段,字段 WebOrderView.name 已被 billing_name 替换(为什么是 GORM?!)并且生成的标准不相同(即使我使用相同的查找器)
select
this_.billing_name as billing18_18_0_,
this_.shipping_name as shippin25_18_0_
from
web_order_vw this_
where
this_.billing_name=? limit ?