我想要一个只从给定域的所有属性中选择bla1和bla2的标准
Foo.findAll()
或
def c = Foo.createCriteria()
def results = c {}
有:
SELECT * FROM foo
results =给定域名foo的所有属性列表
想
SELECT bla1,bla2 FROM foo
写成标准 def c = Foo.createCriteria() def results = c { ??? }
答案 0 :(得分:1)
我认为使用HQL更为自然:
def results = Foo.executeQuery('SELECT bla1,bla2 FROM Foo')
返回的值将是一个List of Object [],所以如果例如bla1是一个String而bla2是一个整数,你可以访问数据,如
for (row in results {
String bla1 = row[0]
int bla2 = row[1]
...
}
答案 1 :(得分:0)
您需要使用投影
def c = Foo.createCriteria()
results = c.list {
projections {
property('bla1')
property('bla2')
}
}
答案 2 :(得分:0)
我现在使用的namedQueries工作正常:
class Item { 产品产品 String somethingShown String somethingHidden
static belongsTo = [product:Product]
static constraints = {
somethingShown()
somethingHidden()
}
static namedQueries = {
restrictedObj { item ->
projections {
property('product')
property('somethingShown')
}
eq 'id', item.id
}
}
查询受限制的物品
Item.restrictedObj(item).list()
现在只剩下一个问题,如何限制与belongsTo相关的类。例如,如果Product也有一个namedQuery“restrictedObj”。在标准财产中使用它的任何方式?