grails one to many with additional column

时间:2015-06-20 13:31:07

标签: grails relationship one-to-many

在我的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:

  • HealthService 1,数量= 2
  • HealthService 2,数量= 3

收据修改1:

  • HealthService 1已删除
  • 使用quantity = 2
  • 修改的HealthService 2
  • HealthService 3,数量= 1

更新后()我有以下内容:

收据1:

  • HealthService 1,数量= 2
  • HealthService 2,数量= 2
  • HealthService 3,数量= 1

我认为这种行为是因为添加了新的域类。我是否可以在update()中手动添加正确的HealthService保存?

编辑: 关于save()的上一个问题已经解决,改变了代码。我使用的方法在我的代码中没有用处。该方法使用了在方法调用时没有填充数据的receiptInstance,因此我在save()中有异常。

1 个答案:

答案 0 :(得分:0)

我已使用以下代码解决了此问题。我希望有人给我一个评论。

$0