Micronaut + GORM不能深度保存域



尝试更新执行域,只更新表执行中的值

import grails.gorm.annotation.Entity
@Entity
class Execution {
RatingItem price
Boolean isDone
}
@Entity
class RatingItem {
Boolean isDone
}

保存由控制器调用的事务性和单例服务

@Transactional
@Singleton
class ExecutionService{
boolean saveExecution(Execution execution){
if( execution.save(flush:true, failOnError:true) ){
return true
}
return false
}
}

调试. .执行。isDone已更新execution.price.isDone不是

事务结束后,rating_item中的is_done未更新

这种情况经常发生。有类似的代码可以工作。在某些情况下,我使用DataSource来强制更新,但这次我需要使用GORM。

正如我前面提到的,有类似的代码可以工作。所以我注意到在这段代码中我使用了以下代码:

Execution execution = Execution.findById(id)

而在当前的问题中:

Execution execution = Execution.get(id)

当我使用findBy时,它工作了。

我认为这是因为get没有正确地获取域,即使所有内部域都是懒惰的:false。我相信这不会发生在grails中,而只会发生在microaut中。

相关内容

  • 没有找到相关文章

最新更新