可以创建一个未映射到数据库表的域类吗?

Dav*_*ave 3 grails

我正在使用Grails 1.2.1.我正在将Java应用程序转换为Grails应用程序,我有一个Java对象,我以为我会创建一个grails域.但是,该对象不依赖于底层数据库表.当我启动我的应用程序时,我收到错误,

"ERROR context.ContextLoader - 上下文初始化失败org.springframework.beans.factory.BeanCreationException:创建名为'messageSource'的bean时出错:bean的初始化失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建bean时出错name'transportManager':在设置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中的常规类吗?谢谢, - 戴夫

sou*_*ica 8

是的,域对象是专门的数据库映射对象.不是DDD意义上的域名.

根据类是否是单例,它应该是服务或src/groovy中的类.


Hoà*_*ong 5

可以创建一个没有底层域对象的类。有2种情况:

  1. 您想要一个在控制器中使用的对象,您可以创建一个命令对象

  2. 如果你想创建一个纯java或groovy类,你可以在src/java或中创建它src/groovy