0
我試圖使用mongoDB grails插件將我的一些域類放到MongoDB中。一些類保留在MySQL中。即使將域類實例保存到MongoDB中,也可以正常工作(例如在控制器代碼中使用)。但是,如果我嘗試從某些not-mongoDB類的afterUpdate()中保存實例,它不起作用。它不拋出任何異常或任何...Grails MongoDB不保存在afterUpdate
我不-的MongoDB領域類:
class CarState extends AbstractCarState {
...
def afterUpdate() {
def logItemInstance = new CarStateLogItem(this.properties)
logItemInstance.save(failOnError: true)
}
}
的MongoDB領域類:
class CarStateLogItem extends AbstractCarState {
ObjectId id
static mapWith = "mongo"
...
}
奇怪的是,如果我運行來自控制器的afterUpdate()代碼將其保存到MongoDB中。我缺少什麼?或者爲什麼我不能保存實例?
感謝您的任何建議, 刁
This Works!我正在嘗試CarStateLogItem.withNewSession,但顯然它沒有工作,因爲據我所知這與hibernate會話有關。我不明白的(因爲缺乏我的Spring交易知識)是它從控制器運作的原因。是否就像我有事務時(即transactional = true的服務)當前與MySQL關聯的事務被採用? – kuceram
服務層中的事務與「數據源」關聯。我很確定你會有一個MySQL數據源而不是mongodb。 – dmahapatro