Как ограничить видимость свойств домена в Grails? - PullRequest
2 голосов
/ 07 мая 2010

Есть ли какой-нибудь рекомендуемый способ ограничить видимость домена в 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 Ответ

2 голосов
/ 07 мая 2010

Вы можете использовать второй класс домена, вроде вида.Хитрость заключается в том, чтобы настроить отображение так, чтобы оно имело ту же таблицу, что и класс 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)}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...