0
class ContentA{
String name
ContentB[] contentBList
}
class contentB{
Long typeId
String typeName
}
ContentA和ContentB都是域对象,它们将被填充到我们拥有的宁静服务的相应调用 中。除了使用transient关键字之外,还有其他方法可以阻止Grails域类中的字段(也是一个域类对象)的持久性吗?
org.hibernate.MappingException:无法确定类型:在表[Lcom.classes.ContentB ;,:表名,为列:[org.hibernate.mapping.Column(content_b_list)
构建应用程序时出现上述错误。 当我们将ContentB添加到static transients{}
时,它不会呈现在生成的json字符串中。我们使用json调用来与服务交互并将Domain对象转换为json 字符串。有没有其他方法让ORM停止保持contentB?
我们甚至试图使用CustomMarshaller来生成json字符串,但是这种字符串运行得不好。
你可以把'contentB'成来源:Groovy的或你的控制器目录,并把它作为一个'Command'对象。如果使用'@ grails.validation.Validateable'注释类名,则可以包含'static constraints'等,并让控制器使用它进行验证。请参阅http://grails.org/doc/latest/guide/single.html#commandObjects。我正在研究一个完全实现这一点的应用程序,并通过JSON将其数据保存在后端服务中 - 我的“Domain”目录中没有任何类。 – nickdos 2014-12-06 08:13:20