0

I have a question about using sql views and "embedded" fields in domain classes. I created a sql view (which contains, among other things, name, shipping_name, billing_name columns) that I associated with a modeled domain class as below. Both classes are in the same file. I tried to move WebOrdressAddress in it's own file (in src/main/groovy) but it does not work.

class WebOrderView {

    String name

    WebOrderAddress shipping

    WebOrderAddress billing

    static embedded = ["shipping", "billing"]

    static mapping = {
        table 'web_order_vw'
        version false
    }
}

class WebOrderAddress {
    String name
}

When I use a finder (like WebOrderView.findByName('test')) I get "null". If I comment the lines "embedded", "shipping", "billing" and I use the same finder I get a result. Can you tell me what's wrong with embedded fields ? Do embedded fields work with sql views? I'm using Grails 3.2.11

Thanks

1 Answer 1

0

Finally i found a solution after i seen a strange behavior in gorm. I renamed the "name" field in the sql view (and in WebOrderView domain class).

class WebOrderView {

    String pname

    WebOrderAddress shipping

    WebOrderAddress billing

    static embedded = ["shipping", "billing"]

    static mapping = {
        table 'web_order_vw'
        version false
    }
}

class WebOrderAddress {
    String name
}

With SQL enabled, without embedded fields i got the following sql

select
    this_.name as name1_18_0_,
from
    web_order_vw this_ 
where
    this_.name=? limit ?

If i use embedded fields, the field WebOrderView.name bas been replaced by billing_name (WHY GORM ?!) and the generated criteria is not the same (even if i use the same finder)

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 ?
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.