簡體   English   中英

Redis(grails插件)不持久枚舉對象

[英]Redis (grails plugin) does not persist Enum Object

我有一個grails域類,我必須在Redis中保留它,如下所示:

class A {
    String one
    Integer two

    B three

    E four

    mapWith = "redis"
}

class B {
    String name
}

enum E {
   VALUE1, VALUE2
}

當我使用GORM .save()方法持久保存類A的實例時,Redis會正確保存它,枚舉字段“ four”除外。

如您所見,事實是已知的,並在此處報告: http : //jira.grails.org/browse/GPREDIS-3

有沒有保存Enum或類似方法的好方法? 我們正在考慮一個String對象數組,您認為呢?

我已經實現了大部分功能,但是它不適用於Gemfire,並且我一直等到針對所有受支持的nosql提供程序修復了該問題,然后再進行修復。 作為一種解決方法,可以將inList約束與持久性String屬性和具有當前屬性名稱的非持久性get / set對結合使用,例如

class A {
   String one
   Integer two

   B three

   String fourString

   void setFour(E e) {
      fourString = e?.name()
   }
   E getFour() {
      fourString ? E.valueOf(fourString) : null
   }

   static constraints = {
      fourString inList: E.values()*.name()
   }

   static transients = ['fourString']

   static mapWith = "redis"
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM