Должны ли классы домена grails быть привязаны к базе данных? - PullRequest
8 голосов
/ 16 августа 2010

Я полный нуб, когда дело доходит до Грааля (и все еще очень нобист, когда дело доходит до отличного), поэтому я прошу прощения, если это глупый вопрос.управлять частями домена в моем приложении на основе объектов файловой системы (т.е. структуры каталогов и типа файла), а не данных базы данных.Насколько легко это сделать или доменные объекты настолько переплетены с GORM, что не стоит пытаться попробовать?

Ответы [ 4 ]

9 голосов
/ 17 октября 2012

Я сам столкнулся с этим вопросом пару недель назад.

Вы можете просто добавить следующий фрагмент к Domain Class.

def isAttached() 
{
   return false
}

Теперь он не подключен к вашей базе данных. Voila!

4 голосов
/ 14 августа 2014

Вы также можете использовать:

class YourDomainClass {

    static mapWith = "none" // disable persistence for this domain class

См. документацию Grails и этот ответ . По-видимому, было добавлено в Grails 2.0.1, но не документировано до версии 2.3.0.

1 голос
/ 16 августа 2010

Не существует встроенного способа сопоставления классов домена с объектами файловой системы, как вы описали, но в равной степени не требуется, чтобы ваши классы домена сопоставлялись с реляционной базой данных.Вопрос о том, как создать приложение Grails, которое не использует реляционную базу данных, рассматривается здесь и здесь (и, возможно, в другом месте).

1 голос
/ 16 августа 2010

Несколько способов сделать это.

Во-первых, вы можете объявить свои свойства, которые сопоставляются с данными файловой системы, как переходные, и переходить в файловую систему при вызове методов получения / установки (их необходимо переопределить).Вы также можете загрузить их, используя onLoad, если вам нужно, чтобы они всегда были в памяти.

Второе - Hibernate обрабатывает постоянство.Hibernate позволяет вам определять свой собственный тип пользователя, который может обрабатывать постоянство в зависимости от того, что вы хотите.Таким образом, это может произойти для вас более прозрачно (хотя вам нужно убедиться, что вы достаточно хорошо понимаете спящий режим, чтобы убедиться, что никаких побочных эффектов нет, я не уверен).

http://i -proving.com / space / Technologies / Hibernate / Пользователь + Типы + in + Hibernate

...