ami*_*mit 1 grails groovy grails-orm
我试图在grails中做一对多的域映射.这是两个类:
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'
}
}
Run Code Online (Sandbox Code Playgroud)
相应的查询可以写成: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
}
Run Code Online (Sandbox Code Playgroud)
我得到以下结果:
[
{
"class": "com.evolving.resource.tn.TNDetails",
"id": 1290,
"tnpk": "1290",
"iccid": [
{
"class": "com.evolving.resource.iccid.ICCID",
"id": 4209
}
],
"tn": "447400002035"
}
]
现在问题是它没有显示属性sim和customer(来自ICCID类).我如何显示这两个参数.我在这里做错了什么?
改变你的:
respond details
Run Code Online (Sandbox Code Playgroud)
至:
JSON.use("deep") {
respond details as JSON
}
Run Code Online (Sandbox Code Playgroud)
深度转换器完全呈现关联(嵌套域类实例)并处理循环关系(文档)