在Grails中查询数据库

时间:2016-06-29 11:00:55

标签: database grails

数据库中的值保存为此类 :: { “额定值1”: “2”, “rating2”: “4”, “rating3”: “5”, “rating4”: “0”, “rating5”: “0”}, 现在我需要访问各个值,如2,4,5等。

我对域类类型进行了变量“评级”,并尝试使用(。)运算符作为对象进行访问,但它不起作用并给出错误: :exception :: groovy.lang.MissingPropertyException:没有这样的属性:class1 for class:java.lang.String

,我尝试转换为数组和列表(作为Array,作为ArrayList,作为List)等,但这也不起作用。 Casting to List给出异常:exception :: org.codehaus.groovy.runtime.typehandling.GroovyCastException:无法转换对象'{“rating1”:“2”,“rating2”:“4”,“rating3”:“5”, “rating4”:“0”,“rating5”:“0”}'将类'java.lang.String'改为类'java.util.List'。

访问类似“评级[3]”给出答案“a”。我应该使用“评级[11]”来获得价值2还是有任何解决方法。 什么是可能的解决方案。请帮忙。

1 个答案:

答案 0 :(得分:0)

您正在存储字符串,因此您只能使用字符串操作。您需要解析该字符串以单独获取属性(也许是JsonSlurper?)。

评级[character-position]是一个坏主意IMO。

也许瞬态(检查GORM文档)会很有用。

class YourDomain {
    String yourField
    String getRating1() { new JsonSlurper().parseText(yourField).rating1 }
}

也许。完全未经考验,只是一个想法。