首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Map<String,String>对地图值长度的限制?

问Map<String,String>对地图值长度的限制?
EN

Stack Overflow用户
提问于 2015-09-25 17:05:35
回答 1查看 763关注 0票数 2
代码语言:javascript
复制
@Entity
@Table(name="Foo")
public class FooEntity {
    @Id
    private String name;
    ...
    @ElementCollection(fetch=FetchType.EAGER)
    private Map<String, String> properties = new HashMap<>();
    ...
}

我有一个类似于上面所示的JPA实体。在运行上述命令时,我会得到一个"properties“表,该表的映射值列的默认最大长度为255个字符。如果我想支持值的长度为64K (而不是键),如何更改映射值的长度限制?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-25 17:26:35

您可以使用以下映射:

代码语言:javascript
复制
@Entity
@Table
public class Foo {
    // ID, other properties, ...

    @ElementCollection
    @MapKeyColumn(name="key", length=100)
    @Column(name="value", length=512)
    @CollectionTable(name="properties", joinColumns=@JoinColumn(name="foo_id"))
    private Map<String, String> properties;
}

您感兴趣的部分是@Column注释,它允许您自定义值列的映射。

在运行模式导出时,此映射将导致遵循DDL:

代码语言:javascript
复制
CREATE TABLE properties (
    foo_id INT8 NOT NULL,
    value VARCHAR(512),
    key VARCHAR(100) NOT NULL,
    PRIMARY KEY (user_id, key)
);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32787271

复制
相关文章

相似问题

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