Grails 如何对域对象进行 JSONify,包括其嵌套域 类?
Grails how to JSONify domain object including its nested domain classes?
我正在尝试在 grails.Here 中进行一对多域映射是两个 classes :
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"
}
]
现在的问题是它没有显示属性 sim
和 customer
(来自 class ICCID)。我怎么办显示这两个参数also.What我这里做错了吗?
改变你的:
respond details
至:
JSON.use("deep") {
respond details as JSON
}
Deep Converters 完全呈现关联(嵌套域类实例)并处理循环关系(documentation)
我正在尝试在 grails.Here 中进行一对多域映射是两个 classes :
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"
}
]
现在的问题是它没有显示属性 sim
和 customer
(来自 class ICCID)。我怎么办显示这两个参数also.What我这里做错了吗?
改变你的:
respond details
至:
JSON.use("deep") {
respond details as JSON
}
Deep Converters 完全呈现关联(嵌套域类实例)并处理循环关系(documentation)