Я пытаюсь создать простой CRUD для таблицы в базе данных Oracle 12, поэтому я создал приложение Grails, передал учетные данные базы данных в application.yml
, создал контроллер и класс домена с именем ConfigTest
(столбец вызывается CONFIG_TEST
в реальной БД) и добавляет к ним простой код.
Класс домена:
package moduleprototype
class ConfigTest {
int configid
String name
String type
String value
String description
int status
static constraints = {
}
}
Контроллер:
package moduleprototype
class ConfigTestController {
static scaffold = ConfigTest
}
Столбцы в моей таблице:
- CONFIGID
NUMBER
- ИМЯ
VARCHAR2
- ТИП
VARCHAR2
- ЗНАЧЕНИЕ
CLOB
- ОПИСАНИЕ
VARCHAR2
- СОСТОЯНИЕ
NUMBER
Таким образом, похоже, что оно должно работать, но когда я запускаю приложение и захожу на http://localhost:8080/ConfigTest
, я получаю:
2019-01-08 15: 06: 28.552 ОШИБКА --- [nio-8080-exec-1]
o.h.engine.jdbc.spi.SqlExceptionHelper: ORA-00904:
"ЭТО _". "ВЕРСИЯ": неверный идентификатор
2019-01-08 15: 06: 28.856 ОШИБКА --- [nio-8080-exec-1]
o.g.web.errors.GrailsExceptionResolver: OracleDatabaseException
произошло при обработке запроса: [GET] / ConfigTest ORA-00904:
"ЭТО _". "ВЕРСИЯ": неверный идентификатор
Почему это так? Что я делаю неправильно? Из того, что я понял, подобные ошибки обычно связаны с проблемами именования, но здесь кажется, что с именами все в порядке, и модель также следует принципам обработки имен Grails (или так кажется).
РЕДАКТИРОВАТЬ: Я также пытался сделать пользовательское статическое отображение, чтобы быть уверенным, что все соответствует тому, что я думал, поэтому я добавил это в класс модели:
static mapping = {
table 'CONFIG_TEST'
configid column: 'CONFIGID'
name column: 'NAME'
type column: 'TYPE'
value column: 'VALUE'
description column: 'DESCRIPTION'
status column: 'STATUS'
}
Но это никак не помогает, сохраняется та же ошибка: (