我正在尝试进行逆向工程,并在数据库中为给定的表模式创建模型类。

该表的名称为infopac_usersProva,它具有两列:

  • strCip varchar(15),即id
  • USERNM varchar(75)

  • 我写了这样的模型:
        class Infopac_usersProva {
    
           String strCip
           String usernm
    
           static mapping={
            datasource 'gpaq'
            table 'infopac_usersProva'
            version false
            columns{
                id column: 'strCip'
                usernm column: 'USERNM', sqlType: "varchar(75)"
                strCip column: 'strCip', sqlType: "varchar(15)"
            }
           }
    
           static constraints = {
            strCip (nullable:true, insert:false, update:false)
           }
        }
    

    但是我得到这个错误:



    我需要为strCip指定列名,因为如果我删除该行,该模型将尝试获取str_cip而不是strCip。如果我取出“id列:'strCip”,则会收到一条错误消息,提示没有id列。

    我究竟做错了什么?

    最佳答案

    我认为您可以摆脱strCip的定义。
    而是正确定义id字段。

    看看这是否适合您:

    class Infopac_usersProva {
    
    String usernm
    
    static mapping={
        datasource 'gpaq'
        table 'infopac_usersProva'
        version false
        columns{
            id generator: 'assigned', name: 'strCip', type: 'string'
            usernm column: 'USERNM', sqlType: "varchar(75)"
        }
    }
    

    我没有检查...

    07-26 05:20