2015-03-16 2 views
1

Я пытаюсь сделать один ко многим отображения доменов в grails.Here являются два класса:Grails как JSONify объект домена, включая его вложенные классы домена?

class TNDetails { 

String tn 
String tnpk 

static hasMany = [iccid: ICCID] 

static mapping = { 
    table 'ni_tn' 
    version false 
    tnpk column : 'TN_PK' 
    tn column: 'TN' 
    id column: 'TN_PK',name: 'tnpk' 
    } 

} 

class ICCID { 

String sim 
String customer 
static belongsTo = [tn: TNDetails] 


static mapping = { 
    table 'ni_sim' 
    version false 
    sim column: 'ICCID' 
    customer column: 'CUSTOMER' 
    tn column: 'TN_FK' 
    id column: 'SIM_PK' 
    } 
} 

Соответствующий запрос можно записать в виде: select TN,ICCID from ni_tn,ni_sim where ni_tn.TN_PK = ni_sim.RELATED_TN and tn_pk=1290 .Теперь в мой контроллер, когда я получать детали, передавая tn_pk так:

def index() { 
    def pk = params.tnPK 
    def details = TNDetails.findAll { 

     (tnpk == pk) 

    } 

    respond details 
} 

я получаю следующий результат: [ { "class": "com.evolving.resource.tn.TNDetails", "id": 1290, "tnpk": "1290", "iccid": [ { "class": "com.evolving.resource.iccid.ICCID", "id": 4209 } ], "tn": "447400002035" } ]

Теперь проблема здесь оно не displayin g атрибуты sim и customer (из класса ICCID). Как я могу отобразить эти два параметра. Что я здесь делаю неправильно?

+0

Что вы имеете в виду атрибуты отображения? С вашей точки зрения? Можете ли вы представить более подробный пример? – saw303

+0

@ saw303: Нет такого представления. Я возвращаю объект JSON, и в JSON отсутствуют атрибуты «sim» и «cutomer». – amit

+0

Что произойдет, если вы используете 'log.debug details as JSON' в вашем контроллере? Каков результат? Какую версию Grails вы используете? – saw303

ответ

5

изменить ваш:

respond details 

к:

JSON.use("deep") { 
    respond details as JSON 
} 

Глубокие конвертеры полностью оказывают ассоциации (вложенные экземпляры domainclass), а также обрабатывать круговые отношения (documentation)

+0

Wow !!!! Это сработало :) В чем разница между этими двумя? – amit

+0

круто, конфигурация 'deep' сообщает grails, чтобы рекурсивно развернуть даже вложенные объекты. – dsharew

Смежные вопросы