Grails 如何使用CreateCrietera获取多个列
我有一个域类,我只想查询一些字段。如何使用“创建条件”执行此操作 我正在使用这个标准,这是可行的,但我如何在输出中获得另一列Grails 如何使用CreateCrietera获取多个列,grails,gorm,hibernate-criteria,Grails,Gorm,Hibernate Criteria,我有一个域类,我只想查询一些字段。如何使用“创建条件”执行此操作 我正在使用这个标准,这是可行的,但我如何在输出中获得另一列 def cartitem=CartOrder.createCriteria().listDistinct{ eq("id",cartid) vendorproductinfo { eq('vendor',vendor)
def cartitem=CartOrder.createCriteria().listDistinct{
eq("id",cartid)
vendorproductinfo
{
eq('vendor',vendor)
projections{
property("productItem")
}
}
}
由于此投影,您只能在结果中获得
productItem
列:
projections{
property("productItem")
}
如果希望返回整个CartOrder
对象,只需删除以下内容:
def cartitem = CartOrder.createCriteria().listDistinct {
vendorproductinfo {
eq('vendor', vendor)
}
}
更新
根据您在下面的评论,您实际想要的结果似乎是Vendorproductinfo.productItem
和Vendorproductinfo.price
。如果您不需要CartOrder
的任何字段,那么我认为您可以将其从查询中完全删除
类似于以下的方法应该有效(尽管我不能100%确定我是否理解您的目标):
vendorproductinfo还有一个名为price的字段。我也希望该字段与productitem一起输出,但不希望输出完整的CartOrder对象。@saurabh-为什么只需要几个属性而不需要整个对象!也许你关心的是表现?相信我,这不会对性能造成太大影响。@如果cartorder域与vendorproductinfo有1:m关系,则vendor productinfo有vendor、productItem和price文件。我有cartorder对象和一个供应商id,现在我想得到所有供应商为的vendorproductinfo对象vendor@saurabh您可以将相关的域类添加到您的问题中吗?
def results = Vendorproductinfo.createCriteria().listDistinct {
eq('vendor', vendor)
projections{
property("productItem")
property("price")
}
}