Объявление логических значений в доменном классе без появления в базе данных - PullRequest
0 голосов
/ 18 марта 2019

У меня есть некоторые логические значения, которые используются в моем проекте grails (службы и контроллеры и т. Д.), Поэтому они объявлены в моем классе домена, но я не хочу, чтобы они появлялись в таблице в базе данных.Вместо того, чтобы объявлять их Boolean, я попробовал Def, но это не работает.Есть ли способ сделать это?

Ответы [ 2 ]

0 голосов
/ 18 марта 2019

Что-то, что я взял из одного из видео Grails Берта Беквита, было в классах домена Grails, если вы определяете getter или setter без объявления самого объекта, который сам по умолчанию становится временным объектом. Так, как указано выше, а не все декларации, если у вас было

//This will return the same value
boolean getFlag() { 
  return someField && someOtherField 
}
//so you call `object.flag` or `object.getFlag()`

Это избавляет от необходимости объявлять переходное значение, а также дает вам возможность применить некоторую логику на лету.

Честно говоря, вы используете класс домена для проверки и ввода. Обычно я разделяю и создаю класс проверки в src, чтобы выполнить эту часть, и заставляю класс домена выполнять необработанную работу - он становится чище, скажем,

0 голосов
/ 18 марта 2019

Если вы хотите, чтобы свойство класса домена не сохранялось в базе данных, используйте transients .

Вот простой пример:

class Thing {
   String name
   boolean flag
   boolean anotherFlag
   static transients = ['flag', 'anotherFlag']
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...