首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用GORM和Hibernate将List<String>持久化到单列中?

如何使用GORM和Hibernate将List<String>持久化到单列中?
EN

Stack Overflow用户
提问于 2012-02-09 02:58:43
回答 2查看 1.7K关注 0票数 4

我想使用Grails和GORM和Hibernate将List字段持久化到单个VARCHAR列中。我已经编写了一个Hibernate自定义类型,但不知道如何让GORM/Hibernate将list字段视为persistent:

代码语言:javascript
运行
复制
class User {
    List<String> listOfStrings
    static mapping = {
        listOfStrings(type: StringListType, length: 512)
    }
}

忽略'listOfStrings‘映射。有什么想法吗?现在,我已经解决了这个问题,使用了一个额外的字符串字段和一个set/get来编码和解码列表。

EN

回答 2

Stack Overflow用户

发布于 2012-02-09 04:41:26

我以前没有编写过自定义类型,但我有一个想法可以让listOfStrings成为一个瞬态变量,并有一个事件处理程序来封送和解组字符串列表。例如,onLoad可以执行listOfStrings = internalVarName.split(),而onUpdate可以执行internalVarName = listOfStrings.join(' ')

另一个想法是将字符串列表包装到您自己的类型中,因为GORM可能会对包含特定类型代码的关联进行特殊处理。我不知道这是事实,只是猜测。

票数 2
EN

Stack Overflow用户

发布于 2020-10-18 11:56:40

我认为这里的一个好方法是依赖一些现有的第三方库,这些库已经为自定义数据类型实现了gorm所需的Scanner/Valuer接口,因此您可以这样做:

代码语言:javascript
运行
复制
import (
  "github.com/lib/pq"
)

type Post struct {
  Tags   pq.StringArray `gorm:"type:text[]"`
}

这段代码类似于gorm文档中用于自定义数据类型的代码,可以在https://gorm.io/docs/data_types.html中找到,它允许您利用现有的高度支持go的postgres驱动程序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9199690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档