我已经执行了以下查询,以便在我的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
答案 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列。