【发布时间】:2015-10-28 20:43:20
【问题描述】:
我遇到了这个奇怪的错误,无法找到任何解决方案,我认为这是我的案例的其他问题。
我在这样的域中的afterInsert() 方法中遇到了这个问题
Class Employee {
/** other code **/
def afterInsert() {
println "Inserting..."
if (!hasAfterInsert) {
hasAfterInsert = true
DatabaseEvent.withTransaction { status ->
def dbEvent = new DatabaseEvent(loggedInUser: null,
type: "Created", entityClass: this.getClass().getName(), eventObjectId: this.id)
dbEvent.save(failOnError: true)
}
}
}
}
插入新员工后,我正在使用此方法创建记录,但是当我在 afterInsert() 中有此代码时,这会引发此错误。
我的DatabaseEvent 类是这样的
class DatabaseEvent {
ObjectId id
String type
String entityClass
String eventObjectId
Date dateCreated
User loggedInUser
}
这给出了类似的东西:
E11000 duplicate key error index: myApp.Employee.$_id_ dup key: { : ObjectId('5631313fe4b0bbeba418859b') }
我不明白为什么在我将 DatabaseEvent 对象保存到 afterInsert() 时会发生这种情况??
【问题讨论】: