Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Groovy & Grails > Grails + Hibernate


Автор: Asal 12.1.2008, 13:36
Недавно прочитал статью http://www.infoq.com/articles/grails-ejb-tutorial#view_2482
Впечатление от Grails - супер ! Статья класс !
попробывал "step-by-step" применить к моему приложению - чертас два!

все выполнял по шагам и застрял на шаге номер 4 (пункт 5 - у меня не показывается список)  smile 

Выдает ошибку:
Код

org.codehaus.groovy.runtime.InvokerInvocationException: groovy.lang.MissingMethodException: No signature of method: static my.amg.users.apl.User.list() is applicable for argument types: (org.codehaus.groovy.grails.web.servlet.mvc.GrailsParameterMap) values: {["max":10, "action":"list", "controller":"user"]}

    at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:62)

    at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassHelper.java:599)

    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:903)

    at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:946)

    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:742)

    at groovy.lang.Closure.call(Closure.java:292)

    at groovy.lang.Closure.call(Closure.java:287)

Это что получается что я в бизнесс классе User должен определить метод list() ?
Может кто подскажет в чем причина ?

Автор: voituk 12.1.2008, 14:40
Попробуй вместо 

grails generate-controller

использовать 

grails generate-all

А вообще какая-то статья мутная - я бы для старта советовал Getting started guide на grails.codehaus.org 
а также книгу "Getting Started with Grails".

Добавлено через 1 минуту и 20 секунд
и ещё из статьи "This article uses Grails 0.2.1 - the current stable release as of this writing"

А ведь уже есть Grails 1.0 RC - наверное статься просто устарела.

Автор: Asal 12.1.2008, 14:55
Цитата

А вообще какая-то статья мутная - я бы для старта советовал Getting started guide на grails.codehaus.org 
а также книгу "Getting Started with Grails".

Статья вроде нормальная.
Сначало я туториал для бегинеров прочитал  smile 
Цитата

Попробуй вместо 

grails generate-controller

использовать 

grails generate-all

grails generate-all не подходит. Насколько я понимаю, эта команда на основе domain класса генирирует,
domain класса у меня нет, у меня есть мой бизнесс класс, для которого надо только controller и view. 
У меня задача прикрутить мою бизнесс логику

Автор: Asal 15.1.2008, 13:10
Ура! после многих попытак ответ был найден http://jasonrudolph.com/downloads/presentations/ 

В последних релизах нет разделения DataSource на несколько классов 
 - ApplicationDataSource
 - DevelopmentDataSource
...
Есть один класс DataSource.groovy
В нем ОБЯЗАТЕЛЬНО должно быть следующее:
Код

dataSource {
  pooled = false
  driverClassName = "com.mysql.jdbc.Driver"
  username = "root"
  password = "root"
}
hibernate {
    cache.use_second_level_cache=true
    cache.use_query_cache=true
    cache.provider_class='org.hibernate.cache.EhCacheProvider'
}
// environment specific settings
environments {
  development {
    dataSource {
      dbCreate = "update" // one of 'create', 'create-drop','update'
      url = "jdbc:mysql://localhost/databaseName"
    }
  }
  test {
    dataSource {
      dbCreate = "update"
      url = "jdbc:hsqldb:mem:testDb"
    }
  }
  production {
    dataSource {
      dbCreate = "update"
      url = "jdbc:hsqldb:file:prodDb;shutdown=true"
    }
  }
}

ксожалению url базы нельзя прописать в hibernate.cfg.xml  smile 
(а может и можно  smile )
Теперь все работает  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)