如何限制grails中域属性的可见性?

时间:2010-05-07 14:11:16

标签: api grails dns

是否有任何建议的方法来限制grails中域的可见性?

通常你会做一些喜欢外部使用的界面:

def productList = Product.list()
withFormat {
  html {[productList:productList]}
  json { render productList as JSON }
  xml { render productList as XML }
  rss { render(feedType:"rss", productList)}
}

等于

SELECT * FROM product

但默认情况下,域名中不应填充的权利。所以我需要说点什么

SELECT id, name, foo1, foo2 FROM product

所以答案中只包含一个属性列表。

1 个答案:

答案 0 :(得分:2)

您可以使用类似视图的第二个域类。诀窍是配置映射,使其与Product类具有相同的表:

class ProductView {

   String name
   Foo foo1
   Foo foo2

   static mapping = {
      table 'product'
   }
}

然后在您的用户界面中使用它:

def productList = ProductView.list()
withFormat {
  html {[productList:productList]}
  json { render productList as JSON }
  xml { render productList as XML }
  rss { render(feedType:"rss", productList)}
}