GRAILS -Oracle ORA-00904:无效的标识符

时间:2016-11-24 02:48:54

标签: oracle grails

我已经执行了以下查询,以便在我的Oracle DB中创建表ACCOUNT:

CREATE TABLE ACCOUNT

( TESTACC   VARCHAR2(13 BYTE)             NOT NULL,
  TEST        VARCHAR2(3 BYTE)           DEFAULT 'TEST',

   CONSTRAINT TEST_PK
   PRIMARY KEY
   (TESTACC)

  )

然后我创建一个GRAILS域

class Account {

String testAcc
String test

static constraints = {  
    testAcc     nullable: false 
 }

static mapping = {
    table "ACCOUNT"
    id                      name: "testAcc"
    testAcc                 column: "ID"
    test                    column: "TEST"

}

现在,我正在尝试在GRAILS控制台中执行以下查询:

Account.executeQuery("select u.test from Account u")

但我面对这个问题:

org.springframework.jdbc.BadSqlGrammarException: Hibernate operation: ORA-00904: "ACCOUNT"."TEST": invalid identifier

1 个答案:

答案 0 :(得分:0)

域实体帐户定义不明确。

试试这个:

class Account {

    String testacc
    String test

    static constraints = {  
        testacc     maxSize:13
        test        nullable: true, blank: true, maxSize:3 
    }

    static mapping = {
        id generator: 'assigned', name: "testacc", type: 'string'
    }
}

在您的代码中table "ACCOUNT"test column: "TEST"是多余的。

另请注意,当您定义String testAcc时,GORM会尝试查找(或创建)TEST_ACC列。