嵌入式 grails SQL 视图



我有一个关于在域类中使用sql视图和"嵌入式"字段的问题。我创建了一个 sql 视图(其中包含名称、shipping_name billing_name列等内容(,我将其与建模域类相关联,如下所示。这两个类位于同一个文件中。我试图在它自己的文件中移动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"。如果我评论"嵌入式","运输","计费"行,并且使用相同的查找器,我会得到结果。你能告诉我嵌入字段有什么问题吗?嵌入字段是否适用于 sql 视图?我正在使用圣杯 3.2.11

谢谢

最后,

在看到 gorm 的奇怪行为后,我找到了解决方案。我在sql视图(和WebOrderView域类(中重命名了"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 ?

如果我使用嵌入式字段,则 bas 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 ?

相关内容

  • 没有找到相关文章

最新更新