如何从grails

时间:2016-01-19 13:25:35

标签: hibernate grails gorm

我尝试从数据库视图创建域类。但是当我尝试运行项目时,我看到了:

  

错误|       2016-01-19 17:15:00,525 [Thread-11] ERROR spi.SqlExceptionHelper - ORA- 01702:这里的视图不合适       错误|       2016-01-19 17:15:00,526 [Thread-11] ERROR hbm2ddl.SchemaUpdate - HHH000299:无法完成架构更新

我的班级:

class Branch {

int id
String name

    static mapping = {
        table 'smart_branch'
        version false
        cache: 'read-only'
        id column: 'id'
        name column: 'name'
    }

    static constraints = {
    }
}

我使用oracle 10g,在视图中我使用链接到另一个oracle数据库。

观点:

create or replace view branch (id, name) as (select id, convert(zzz.convert2@b(name)) from zzz.branch@db emp)

1 个答案:

答案 0 :(得分:1)

Domain类是一个实体,db中的一个表,您可以在其上运行DML查询。视图主要用于仅提取数据而不修改数据。

你也不应该试试。此外,如果您使用Hibernate为您生成架构,那么您不能拥有一个具有相同名称的表和视图。您必须在dbCreate中将none模式设置为DataSource.groovy,或者使用mapWith属性从db中删除doamin的映射。

但是如果你仍然想要一个从视图中获取数据的Doamin类,那么你可以查看这个answer