2016-11-24 82 views
0

我已经为了我在Oracle数据库中创建表ACCOUNT已经执行以下查询:GRAILS -Oracle ORA-00904:无效的标识符

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 
+0

是这是一个错字,现在更新 – SK7

+0

您是否已连接到与创建表相同的用户? – JSapkota

+0

是的,同一个用户 – SK7

回答

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列。