Консоль Grails и создание / тестирование классов - PullRequest
2 голосов
/ 05 октября 2010

Я знаю, что могу создать класс, используя: grails create-domain-class book

Это создаст файл класса в моем проекте, к которому я затем смогу получить доступ через консоль.

MyВопрос в том, как создать в самой консоли использование класса, который затем можно сохранить ()?

Если я наберу в консоли следующее, я получу сообщение об ошибке:

  class Tree {
    String name
    Date dateCreated
  }

  def tree = new Tree(name:'oak').save()

Я получаю ошибку:

   Exception thrown

   groovy.lang.MissingMethodException: No signature of method: 
       Tree.save() is applicable for argument types: () values: []
   Possible solutions: wait(), any(), wait(long), each(groovy.lang.Closure),
        sleep(long), use([Ljava.lang.Object;)

    at ConsoleScript6.run(ConsoleScript6:6)

Ответы [ 2 ]

2 голосов
/ 05 октября 2010

Это невозможно.Вы только что создали простой класс, который консоль компилирует для вас и делает доступным, но нет способа преобразовать его в класс домена и передать ему поведение GORM.

Классы домена должны находиться в grails-app /доменная папка или также могут быть классы, сопоставленные с файлами Hiberm hbm.xml или аннотациями.

0 голосов
/ 14 октября 2010

Это не так, вы МОЖЕТЕ протестировать доменные классы непосредственно из консоли Grails - просто запустите ваш консольный скрипт с "import package.domain-class-name"

Если у вас есть класс домена в тесте пакета:

class A {
String testStr
}

затем создайте консольный скрипт следующим образом:

import test.A
def t = new A(testStr:"blah").save()

// работает!

наслаждаться ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...