我尝试从数据库视图创建域类。但是当我尝试运行项目时,我看到了:
错误| 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)
答案 0 :(得分:1)
Domain类是一个实体,db中的一个表,您可以在其上运行DML查询。视图主要用于仅提取数据而不修改数据。
你也不应该试试。此外,如果您使用Hibernate为您生成架构,那么您不能拥有一个具有相同名称的表和视图。您必须在dbCreate
中将none
模式设置为DataSource.groovy
,或者使用mapWith
属性从db中删除doamin的映射。
但是如果你仍然想要一个从视图中获取数据的Doamin类,那么你可以查看这个answer。