List 如何在groovy/grails中获取列表中一个元素的值
在执行createCriteria查询之后,我有一个对象列表,其中只有1个项,其中有7个字符串。我想做的是只得到这七个元素中的一个List 如何在groovy/grails中获取列表中一个元素的值,list,grails,groovy,criteria,hibernate-criteria,List,Grails,Groovy,Criteria,Hibernate Criteria,在执行createCriteria查询之后,我有一个对象列表,其中只有1个项,其中有7个字符串。我想做的是只得到这七个元素中的一个 List<Object> result - com.test.MyService.getConfig(String, String, String, String, String, String, String) 例如,我希望access仅获取字符串“country”才能在方法中返回它: 我正在尝试这样做: result.get(4) 我犯了一个错误
List<Object> result - com.test.MyService.getConfig(String, String, String, String, String, String, String)
例如,我希望access仅获取字符串“country”才能在方法中返回它:
我正在尝试这样做:
result.get(4)
我犯了一个错误:
java.lang.IndexOutOfBoundsException: Index: 4, Size: 1
试一试
您将获得java.lang.IndexOutOfBoundsException:Index:4,Size:1
,因为当您执行YourDomainClass.createCriteria().list{}
时,您将获得YourDomainClass对象的列表(只有一个对象)。因此,如果要使用YourDomainClass.createCriteria().list{}
,应该执行:
def objects = YourDomainClass.createCriteria().list{}
if(objects) //check if any object is in list
return objects[0].country
试一试
您将获得java.lang.IndexOutOfBoundsException:Index:4,Size:1
,因为当您执行YourDomainClass.createCriteria().list{}
时,您将获得YourDomainClass对象的列表(只有一个对象)。因此,如果要使用YourDomainClass.createCriteria().list{}
,应该执行:
def objects = YourDomainClass.createCriteria().list{}
if(objects) //check if any object is in list
return objects[0].country
您可以做的是:
result.first().country
get
而不是list
def result=DomainClass.createCriteria().list{//或get
结果变压器(标准规范。别名到实体映射)
投影{
财产(“国家”、“国家”)
}
}
在这种情况下,当使用.list{}
获取国家/地区的值时:
返回结果.first().country
返回result.first()
.get{}
而不是.list{}
时:
返回结果。国家/地区
返回结果
result.first().country
get
而不是list
def result=DomainClass.createCriteria().list{//或get
结果变压器(标准规范。别名到实体映射)
投影{
财产(“国家”、“国家”)
}
}
在这种情况下,当使用.list{}
获取国家/地区的值时:
返回结果.first().country
返回result.first()
.get{}
而不是.list{}
时:
返回结果。国家/地区
返回结果
我无法访问。请更具体地说:您在我的解决方案中遇到了什么样的错误?你两个都试过了吗?我无法访问。请更具体地说:你在我的解决方案中遇到了什么样的错误?你两个都试过了吗?
def objects = YourDomainClass.createCriteria().list{}
if(objects) //check if any object is in list
return objects[0].country