gpt4 book ai didi

java - 尝试运行简单的动态脚手架 Grails 应用程序会导致 ORA-00904 错误

转载 作者:行者123 更新时间:2023-12-02 01:43:23 25 4
gpt4 key购买 nike

我正在尝试为 Oracle 12 数据库中的表创建一个简单的 CRUD,因此我创建了一个 Grails 应用程序,在 application.yml 中传递了数据库凭据,创建了一个名为的 Controller 和域类ConfigTest(该列在实际数据库中称为CONFIG_TEST)并向其中添加了一些简单的代码。

域类:

package moduleprototype

class ConfigTest {
int configid
String name
String type
String value
String description
int status

static constraints = {
}
}

Controller :

package moduleprototype

class ConfigTestController {

static scaffold = ConfigTest
}

我的表格中的列是:

  • CONFIGID 数字
  • 名称 VARCHAR2
  • 类型 VARCHAR2
  • VALUE CLOB
  • 描述 VARCHAR2
  • 状态数字

因此,它看起来应该可以工作,但是当我运行应用程序并转到 http://localhost:8080/ConfigTest 时,我得到:

2019-01-08 15:06:28.552 ERROR --- [nio-8080-exec-1] o.h.engine.jdbc.spi.SqlExceptionHelper : ORA-00904: "THIS_"."VERSION": invalid identifier

2019-01-08 15:06:28.856 ERROR --- [nio-8080-exec-1] o.g.web.errors.GrailsExceptionResolver : OracleDatabaseException occurred when processing request: [GET] /ConfigTest ORA-00904: "THIS_"."VERSION": invalid identifier

为什么会这样呢?我究竟做错了什么?根据我收集的信息,此类错误通常与命名问题有关,但在这里,名称似乎没问题,并且模型也遵循 Grails 名称处理原则(或者看起来是这样)。

编辑:我还尝试进行自定义静态映射,以确保所有内容都映射到我认为的内容,因此我将其添加到模型类中:

static mapping = {
table 'CONFIG_TEST'

configid column: 'CONFIGID'
name column: 'NAME'
type column: 'TYPE'
value column: 'VALUE'
description column: 'DESCRIPTION'
status column: 'STATUS'

}

但这根本没有帮助,同样的错误仍然存​​在:(

最佳答案

Grails 需要在您的表上有一个名为 version 的列,除非您在域类的映射 block 中禁用它,例如:

static mapping = {
version false
}

版本列用于乐观锁定。

参见the docs获取完整信息。

关于java - 尝试运行简单的动态脚手架 Grails 应用程序会导致 ORA-00904 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54093753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com