使用findAll获取不带LocationGeoPoint的内容列表。 我必须手动获取每个内容,因为内容(content.location)的属性在每个闭包内为空。这是因为findAll实际上并未从数据库中获取吗?
def contents = Content.findAllByLocationGeoPointIsNull()
def location
GeoPoint geoPoint
contents.each { Content content ->
println content
if(content.location == null) {
content = Content.get(content.id)
}
location = content.location
println content.location
println location
...
content.save()
}
有更好的方法吗?
答案 0 :(得分:0)
我可能误解了您的问题,但这是我的建议。您要求的所有LocationGeoPoint的值都为null,也许您应该尝试IsNotNull,您可以在http://gorm.grails.org/latest/hibernate/manual/index.html#finders上找到它,并在其中找到示例。
您可以尝试这样的事情
List<Content> contents = Content.findAllByLocationGeoPointIsNotNull()
contents.each { Content content ->
// update logic goes here
content.save()
}
我还建议您查看查询允许您在其中执行批处理更新和删除的位置。