我有以下域模型:
class Folder {
User user
Set files = []
static hasMany = [files: File]
static mapping = {
tablePerHierarchy false
files cascade: 'all-delete-orphan'
}
static constraints = {
}
}
我有一个请求,它返回特定文件夹的文件列表。有时,后续调用会给出不同的结果。数据库已更新且正确,因此该服务似乎获取了缓存的数据。
真的有某种缓存可以使这种情况发生吗?我该如何解决?
最佳答案
如果没有更多细节,回答您的问题有点困难,但我可以为您提供这种行为的几个常见原因:
如果有,则从二级缓存(而不是 db)中选择对象
在缓存中。如果是这种情况,您应该使用动态查找器,
IE。,
Folder.findById(id)
这将始终从数据库中获取新对象。
通过在 save 方法中传递选项 flush: true 来休眠 session :
folder.save(flush: true)
关于Grails - 服务获取旧的域数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26921001/