我有两节课。 OrderSlip类与orderedItemDescription具有一对多的关系。
class OrderSlip {
String employeeID
int serving
int tableNumber
static hasMany = [orderedItemDescription: OrderedItemDescription]
}
class OrderedItemDescription {
MenuItem menuItem
MenuItemProgressStatus progress//progress
String descriptionOfOrder
int quantity = 1
static belongsTo = OrderSlip
}
现在我的问题是我如何迭代orderedItemDescription
以便当我更新orderSlip时,我可以添加许多orderedItemDescriptions及其属性。
def updateOrderSlip(Long id) {
User currentUser = springSecurityService.currentUser
def orderSlipInstance = Table.get(id)
//other codes for orderedItemDescription here
orderSlipInstance.employeeID = currentUser.username
orderSlipInstance.serving= Integer.parseInt(params.serving)
orderSlipInstance.tableNumber= params.tableNumber
render(action:'server')
}
我在我的gsp中做了类似的事情。我只使用添加按钮向DOM添加数据。然后对于发送订单我希望我可以像问题一样更新它,因为我还在我的摘要中为每个orderedItemDescription添加了许多g:hiddenField
答案 0 :(得分:0)
您应该以某种方式持久保存每个新实例OrderedItemDescription
。
点击add
- 按钮并将status
标记设置为incomplete
,即可将其立即存储在数据库中。保存整个订单时,必须将incomplete
更改为complete
。
另一种选择是将项目保留在http会话中。在send order
之后,您将遍历会话中的项目,并将它们与订单实例一起保留。
这两种方式都有优点和缺点,但它们都很有用。