我有以下课程
class Product {
}
class ProductTest extends Product {
static hasMany = [events:Event]
}
class Event {
static belongsTo = [product:ProductTest ]
}
当我打电话
def product = Product.get(1)
product.delete(flush:true)
我收到错误:
2015-08-28 16:15:13,770 [http-bio-8080-exec-7] ERROR errors.GrailsExceptionResolver - MySQLIntegrityConstraintViolationException occurred when processing request: [GET] /xx/produkt/deleteProduct/300-fewfwef
Column 'event_id' cannot be null. Stacktrace follows:
Message: Column 'event_id' cannot be null
这没有任何意义,因为我打电话时
log.debug product.events
它返回一个空列表([]),因为我从未将该事件与该产品相关联
我试过
Product.executeUpdate("DELETE $Product.name WHERE id = :id", [id:product.id])
奇怪的是......
我正在使用数据库迁移插件...也许这会导致问题,因为它可能错误地创建了表?它绝对是由GORM引起的,因为executeUpdate可以工作但不是GORM等效的delete(flush:true)