我正在使用Grails 1.2.1。我正在将Java应用程序转换为Grails应用程序,我有一个Java对象,我以为我会创建一个grails域。但是,该对象不依赖于底层数据库表。当我启动我的应用程序时,我收到错误,
“ERROR context.ContextLoader - 上下文初始化失败 org.springframework.beans.factory.BeanCreationException:创建名为'messageSource'的bean时出错:bean的初始化失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名为'transactionManager'的bean时出错:在设置bean属性'sessionFactory'时无法解析对bean'sessionFactory'的引用;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名为'sessionFactory'的bean时出错:init方法的调用失败;嵌套异常是org.hibernate.MappingException:无法确定类型:java.io.InputStream,在表:http_cache_response,对于列:[org.hibernate.mapping.Column(body)]“
我滥用域名了吗?这个对象应该只是src / groovy中的常规类吗?谢谢, - 戴夫
答案 0 :(得分:8)
是的,域对象是专门的数据库映射对象。不是DDD意义上的域名。
根据类是否是单例,它应该是服务或src / groovy中的类。
答案 1 :(得分:4)
可以创建一个没有底层域对象的类。有两种情况:
1)您希望在Controller中使用对象,您可以创建CommandObject。
2)如果你想创建一个纯java / groovy类,你可以在src / java或src / groovy中创建它。
答案 2 :(得分:0)
我想说如果你不打算将这个类用作grails样式的域对象,最好把它放在src / java中,并像其他类一样使用它们。
答案 3 :(得分:0)
您可能想签出域类的mapWith
属性:
static mapWith = "none"
应该可以解决问题