grails - grails复合ID无效

标签 grails gorm

我有以下域类:

class AccountSupplier implements Serializable {

    static mapping = {
       table 'MY_TABLE'
       version false

       accountReference /*indexColumn: 'ACNTID', */ column:'REFACNTID'
       supplierReference /* indexColumn:'SUPID' ,*/ column:'REFSUPID'

       id composite:['accountReference', 'supplierReference']
    }

   Account accountReference
   Supplier supplierReference
}

除了ID处理之外,其他一切都可以正常工作。当我尝试获取AccountSupplier对象的ID时,我什么也没得到。结果是我无法删除或编辑某些内容。仅列表有效(无ID)

我该如何处理ID以获取,删除...

谢谢。

最佳答案

没有实际的ID。这并不是复合ID的工作原理。您需要在您的类上提供一个方法以允许删除(以及其他操作)

static boolean remove(Account accountReference, Supplier supplierReference, boolean flush = false) {
  AccountSupplier instance = AccountSupplier.findByAccountAndSupplier(accountReference, supplierReference)
  instance ? instance.delete(flush: flush) : false
}

关于grails - grails复合ID无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6692026/

相关文章:

java - NullPointerException 只有在我为 GoogleCredential 对象设置了 setServiceAccountUser() 之后 (Grails/Java)

azure - 用于DocumentDB的Grails插件

grails - 在Controller中使用域类时,在测试完 Controller 后将返回错误

exception - Grails GORM关联未映射异常

grails - Grails float 编辑和精度

google-app-engine - Grails1.4M1 + GAE + gorm-jpa 不起作用

java - Groovy - 计算从当前时间开始是否经过了特定分钟

Grails DetachedCriteria 不包含 sqlRestriction

grails - Groovy PageRenderer无法呈现GSP

hibernate - Grails Hibernate持久化设置:如何不自动保存