首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hibernate映射MySQL集类型

问Hibernate映射MySQL集类型
EN

Stack Overflow用户
提问于 2017-09-05 15:14:53
回答 1查看 1.3K关注 0票数 1

表中有SET (https://dev.mysql.com/doc/refman/5.7/en/set.html)类型字段:SET('A','B')。和枚举:

代码语言:javascript
复制
public enum Foo {
 A, B
}

所以我想把这个字段映射到Set<Foo>

代码语言:javascript
复制
@Entity
public class Bar {
...
@Column(name="foos")
private Set<Foo> foos;
...
}

或者,至少我想知道使用Hibernate读取MySQL文件集的任何方法。

EN

回答 1

Stack Overflow用户

发布于 2017-09-06 06:56:47

有趣的问题!不幸的是,hibernate无法处理特定于数据库的数据类型。(至少我并不是不知道,所以请随时纠正我:)

您可以像String一样简单地处理它,并在getter中解析它:

代码语言:javascript
复制
@Entity
class Bar {
    ...
    @Column(name = "foos")
    private String foos;

    public Set<Foo> getFoos() {
        return (null == foos) ?
                Collections.emptySet() :
                Arrays.stream(foos.split(",")).map(Foo::valueOf).collect(Collectors.toSet());
    }
    ...
}

我承认,这并不是ORM/Hibernate--做事的方式,但它做的非常得体。

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

https://stackoverflow.com/questions/46058371

复制
相关文章

相似问题

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