我有一个非常简单的测试用例,用于尝试了解Redis。我做了install-plugin redis-gorm。

域对象:

class BenchGroup {
  String groupName
  /*static mapWith = "redis"
  static mapping = {
    groupName(index:true)
  }*/
  static constraints = {
  }
}

引导代码:
def everyoneGroup = new BenchGroup(groupName:'everyoneGroup')
everyoneGroup.save()
if(everyoneGroup.hasErrors()){
  println everyoneGroup.errors
}
println everyoneGroup
def dammit = BenchGroup.findByGroupName('everyoneGroup')
println dammit

当我在redis map行中留下注释时,它使用HSQL并输出以下内容:
stupidbenchmarks.BenchGroup : 2
stupidbenchmarks.BenchGroup : 2

当我切换到redis时,它会执行以下操作:
stupidbenchmarks.BenchGroup : 2
null

即.findBy不起作用。

最佳答案

Hibernate在执行查询之前会刷新(在本例中为findByGroupName),但是NoSQL GORM Datastore实现尚未实现(因此),因此我假设您只需要刷新就可以将保存的实例推送到数据存储中,以便查询进行查询:

everyoneGroup.save(flush: true)

10-08 04:02