将 Grails 域对象映射到 JDBC 表/序列

Posted

技术标签:

【中文标题】将 Grails 域对象映射到 JDBC 表/序列【英文标题】:Mapping Grails Domain object to JDBC table/sequence 【发布时间】:2012-11-08 23:25:28 【问题描述】:

我正在尝试将现有的 oracle 表映射到新的 Grails 域对象。我也有一个现有的序列。调用“run-app”时出现错误:

Unsuccessful: create sequence hibernate_sequence
ORA-01031: insufficient privileges

我的目标是使用现有序列,而不是创建新序列。郑重声明,这是我第一次尝试 Grails/Groovy。

我的域对象如下所示。表名是Uicc_Inv_Detail。 PK 是UICC_INV_DETAIL_ID。其他列与 Uicc 类中的名称相同。序列名称为Uicc_Inv_Detail_Seq。 我认为我的整个“id 生成器”部分是错误的。

class Uicc 
  String id
  String iccid
  String imsi

  static mapping = 
    version false
    table 'Uicc_Inv_Detail'
    id generator: 'sequence',column:'UICC_INV_DETAIL_ID',
            params:  [table: 'Uicc_Inv_Detail_Seq', column: 'nextval']

  

    static constraints = 
    

【问题讨论】:

【参考方案1】:

用途:

id generator:'native', params:[sequence:'Uicc_Inv_Detail_Seq']

这是文档: http://grails.org/doc/2.0.x/ref/Database%20Mapping/id.html http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/mapping.html#mapping-declaration-id-generator

【讨论】:

这行得通,谢谢。我只需要将其修改为id column: 'uicc_inv_detail_id', generator:'native', params:[sequence:'Uicc_Inv_Detail_Seq']

以上是关于将 Grails 域对象映射到 JDBC 表/序列的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Grails 域类映射到 DTO?

需要将多个(同名)域分类映射到不同的数据库模式

如何使用 Grails 4 JSON 视图呈现域对象的地图

Grails:如何在多对多映射中查询对象?

有没有办法在 Grails 中配置对数据库的两个不同模式的访问?

Grails - 向所有域对象添加 where 子句