我已将现有的hibernate映射集成到grails应用程序中。动态查找器工作正常,外键也可以解决。但我无法保存域类的新实例。
注意:我的域类中没有id字段,所有主键都有自定义名称(例如carId,houseId)。由于这个ClassName.get(id)不起作用,为了解决这个问题,我使用动态查找器(例如findByCarId)。我认为这也是创建实例的问题。 我得到的例外情况如下:
org.hibernate.MappingException: Unknown entity: xxx.xxx.DomainClassName
这似乎是与entity-name参数相关的问题,现有的entity-name是DomainClassName,但是grails尝试查找实体xxx.xxx.DomainCalssName(完全限定名称)并且找不到它。
一些建议?
答案 0 :(得分:1)
您似乎对hbm.xml映射的命名存在问题,这与grails无关。您应该从这些映射中检查您的实体名称属性。 See this post了解更多详情。
答案 1 :(得分:0)
您应该自定义id生成器及其映射到的列,如下所示:
static mapping = {
id column:'carId', type:'integer'
}