【发布时间】:2015-12-13 07:49:32
【问题描述】:
获得了一个简单的 Loopback API 来使用 postgreSQL 连接器检索票证和响应。票证和响应单独返回很好,但是当我尝试将响应嵌入票证模型时,我收到以下错误。我已经尝试按照文档进行操作,并且我确信在我缺少的一个关系中这很简单,但是无论我尝试什么,我都无法让它发挥作用。
任何帮助将不胜感激。
票种:
{
"name": "Ticket",
"base": "PersistedModel",
"idInjection": true,
"options": {
"postgresql": {
"schema": "customer_service",
"table": "tbl_ticket"
}
},
"properties": {
"description": {
"type": "String",
"required": true,
"length": null,
"precision": null,
"scale": null,
"postgresql": {
"columnName": "description",
"dataType": "text",
"dataLength": null,
"dataPrecision": null,
"dataScale": null,
"nullable": "NO"
}
},
"id": {
"type": "Number",
"id": 1,
"required": true,
"length": null,
"precision": 32,
"scale": 0,
"postgresql": {
"columnName": "id",
"dataType": "integer",
"dataLength": null,
"dataPrecision": 32,
"dataScale": 0,
"nullable": "NO"
}
}
},
"validations": [],
"relations": {
"responses": {
"type": "embedsMany",
"model": "Response",
"property": "embededResponses",
"options": {
"validate": true,
"forceId": false
}
}
},
"acls": [],
"methods": {}
}
响应模型:
{
"name": "Response",
"base": "PersistedModel",
"idInjection": true,
"options": {
"postgresql": {
"schema": "customer_service",
"table": "tbl_response"
}
},
"properties": {
"notes": {
"type": "String",
"required": false,
"length": null,
"precision": null,
"scale": null,
"postgresql": {
"columnName": "notes",
"dataType": "text",
"dataLength": null,
"dataPrecision": null,
"dataScale": null,
"nullable": "YES"
}
},
"ticketId": {
"type": "Number",
"required": true,
"length": null,
"precision": 32,
"scale": 0,
"postgresql": {
"columnName": "ticket_id",
"dataType": "integer",
"dataLength": null,
"dataPrecision": 32,
"dataScale": 0,
"nullable": "NO"
}
},
"id": {
"type": "Number",
"id": 1,
"required": true,
"length": null,
"precision": 32,
"scale": 0,
"postgresql": {
"columnName": "id",
"dataType": "integer",
"dataLength": null,
"dataPrecision": 32,
"dataScale": 0,
"nullable": "NO"
}
}
},
"validations": [],
"relations": {
"ticket": {
"type": "belongsTo",
"model": "Ticket",
"foreignKey": "ticketId"
}
},
"acls": [],
"methods": {}
}
错误:
{
"error": {
"name": "error",
"status": 500,
"message": "column \"embededresponses\" does not exist",
"length": 126,
"severity": "ERROR",
"code": "42703",
"position": "213",
"file": ".\\src\\backend\\parser\\parse_expr.c",
"line": "766",
"routine": "transformColumnRef",
"stack": "error: column \"embededresponses\" does not exist\n at Connection.parseE (C:\\WebApp\\node_modules\\loopback-connector-postgresql\\node_modules\\pg\\lib\\connection.js:539:11)\n at Connection.parseMessage (C:\\WebApp\\node_modules\\loopback-connector-postgresql\\node_modules\\pg\\lib\\connection.js:366:17)\n at Socket.<anonymous> (C:\\WebApp\\node_modules\\loopback-connector-postgresql\\node_modules\\pg\\lib\\connection.js:105:22)\n at Socket.emit (events.js:107:17)\n at readableAddChunk (_stream_readable.js:163:16)\n at Socket.Readable.push (_stream_readable.js:126:10)\n at TCP.onread (net.js:538:20)"
}
}
【问题讨论】:
-
我在该模型中看不到 embededResponses 属性。该错误似乎表明这不存在。
-
我确实尝试过将我的票证模型的 embededResponses 属性声明为对象和数组,但仍然得到相同的错误。如果您在 GitHub 上查看他们的示例,您似乎不需要这样做。 github.com/strongloop/loopback-example-embedded-relations/blob/…
标签: loopbackjs strongloop