在我的Grails项目中,我需要在两个域类之间建立1:N的关系。所以,我创建了以下域类:
class Receipt_HealthService {
Receipt receipt
HealthService healthService
int quantity = 1
static constraints = {
}
}
在收据中我有以下内容:
@NotNull
static hasMany = [healthServices:Receipt_HealthService]
因此创建了一个新表,它具有域类和quantity
字段的ID。
当我调用save()方法时,一切正常,但是当我调用update()时,某些东西不起作用。
如果用户修改了Receipt,删除之前保存的HealthService之一,并修改其他HealthService,旧的HealthServices将保留新的HealthServices。例如:
使用以下内容创建收据1:
收据修改1:
更新后()我有以下内容:
收据1:
我认为这种行为是因为添加了新的域类。我是否可以在update()中手动添加正确的HealthService保存?
编辑: 关于save()的上一个问题已经解决,改变了代码。我使用的方法在我的代码中没有用处。该方法使用了在方法调用时没有填充数据的receiptInstance,因此我在save()中有异常。
答案 0 :(得分:0)
我已使用以下代码解决了此问题。我希望有人给我一个评论。
$0