当前位置: 首页 > 知识库问答 >
问题:

Grails组织。h2.jdbc。JdbcSQLException值对于列太长

沈长恨
2023-03-14

我是Grails新手,不太熟悉GORM如何将列映射到jdbc实现。基本上我有以下错误:

组织。h2.jdbc。JdbcSQLException

消息:

“KEYWORDS BINARY(255)”列的值太长:“X'ACED0005737200116A6176612E7574696C2E486173684D61700507DAC131660D1030002460A6C6F6164466163746F724490097468726573686F6C647870…(1871)”;SQL语句:在用户(id、版本、电子邮件、face\u url、关键字、姓名、电话、html" target="_blank">标签、终端、url、微博id、微博名称)中插入值(null、、、、、、、、、、?、?)[22001-176]

我尝试了几种方法来更改此关键字属性的保存方式,例如

static constraints = {
    ...
    keywords(type:'serializable')
}

我还尝试了“maxSize:10000”,“键入:'text',以及这两者的组合。但是没有成功,错误也完全一样。“keyword”属性只是key=String,value=Double的HashMap。

一般来说,我不确定让Grails(Hibernate)存储hashmap的最佳实践是什么。我相信一定有一个简单的设置,而不是自己为hibernate或grails实现用户定义的持久化方式。我想知道为什么每次它似乎都转换成二进制(我确实重新运行了应用程序,让db删除并创建所有表)。

更多细节,我的控制器只是脚手架。Grails版本为2.4.4。H2db用于开发环境。

任何建议都将不胜感激!

共有1个答案

梁丘诚
2023-03-14

我猜您在静态闭包中定义关键字是错误的,您应该这样在静态映射中编写它

static mapping = {
    keywords sqlType:'text'
}

希望这有帮助。谢谢

 类似资料:
  • 我已经尝试过在网上找到的一些解决方案,但没有一个有效。我正在使用内存中的持久hibernate数据库。 包装高级。配置。数据库配置;

  • 这是WildFly 10.0中Hibernate版本不匹配的后续问题。 为了完整起见,请简要地重新说明问题。我有两个项目,一个是普通java项目(使用maven):,另一个是非maven动态web项目:。后者充当顶部的Rest层。 使用hibernate没有任何问题。它定义了(在中)如下所示: 和现在都在使用,分别使用maven和WildFly模块安装,如下所述。 然而,现在当我将部署到WildF

  • 我正在寻找如何组织grails GSP以及如何管理GSP扩展的最佳实践。我正在开发一个应用程序,我需要创建自己的GSP超文本标记语言元素以及覆盖标准GSP元素,我想知道如何组织它们。 我考虑的是编写一个Grails插件,它有自己的标记库和自己的命名空间。创建我需要的所有元素,并覆盖现有元素。 关于如何组织这样的事情,有什么好的例子吗?

  • 我有一个spring data jpa应用程序,它使用H2进行存储。当我尝试将一些数据解析到表中时,我得到一个错误: 我有一个表定义为: 我的@Entity类为: 这是令人反感的记录,它显然小到足以容纳该列: 我所能想到的是分号或其他一些无效字符正在引发此异常。 有人能看到这里的问题,并提出处理它的替代方案吗?

  • 我将Spring boot JPA实体定义为: 上述方法在DB2中效果良好,但在H2中效果不佳。 在application.properties,我有以下设置: 当我做maven的时候 原因:org。h2。jdbc。JdbcSQLSyntaxErrorException:未找到架构“MYSCHEMA”;SQL语句:公共类CarEntity实现可序列化的{。。。 我希望在H2上创建模式,因为我在我的

  • 我在持久化LocalDate字段[在列中使用VARCHAR(20)类型]时收到以下错误: 字段定义如下: 我使用的是spring data starter(1.5.9版本)。它在内部使用hibernate 5.0.12。 根据博文https://www.thoughts-on-java.org/hibernate-5-date-and-time/ Hibernate 5,支持Java 8特性(Da