Grails .findBy 不适用于 redis

标签 grails redis grails-orm grails-plugin

我有一个非常简单的测试用例,用于尝试理解 Redis。我安装了插件 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 映射行注释掉时,它使用 HSQL 并输出:

stupidbenchmarks.BenchGroup : 2
stupidbenchmarks.BenchGroup : 2

当我切换到 redis 时,它会这样做:

stupidbenchmarks.BenchGroup : 2
null

即.findBy 不起作用。

最佳答案

Hibernate 在执行查询之前刷新(在本例中为 findByGroupName)但是 NoSQL GORM 数据存储实现(还)没有,所以我假设您只需要刷新将保存的实例推送到数据存储查询选择它:

everyoneGroup.save(flush: true)

关于Grails .findBy 不适用于 redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7326267/

相关文章:

grails - java.lang.LinkageError: “javax/activation/DataHandler”

grails - Grails 3.3.2-错误-[main] o.s.boot.SpringApplication:应用程序启动失败

grails - 在Grails中按用户保护 Controller Action

lua - ServiceStack Redis,如何将Lua表返回为List

python - 在运行时定义 Redis 数据库

grails - 如何将 mongodb 和/或 postgresql-extension 插件添加到 Grails 3.0.0+ 中?

grails 将 gorm 子查询动态添加到现有查询中

grails - 有没有办法在GRAILS中制作rails “yield/content_for”?

php - Session 和 Laravel Queues 可以使用同一个 Redis 实例吗?

grails - 在 grails 域类上使用泛型时出错