gpt4 book ai didi

java - JPA Map 对映射值长度的限制?

转载 作者:行者123 更新时间:2023-11-30 03:15:15 25 4
gpt4 key购买 nike

@Entity
@Table(name="Foo")
public class FooEntity {
@Id
private String name;
...
@ElementCollection(fetch=FetchType.EAGER)
private Map<String, String> properties = new HashMap<>();
...
}

我有一个与上面显示的类似的 JPA 实体。运行上面的代码时,我得到一个“属性”表,其中映射值列的默认最大长度为 255 个字符。如果我想支持值(而不是键)的长度(例如)高达 64K,如何更改映射值的长度限制?

最佳答案

您可以使用以下映射:

@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:

CREATE TABLE properties (
foo_id INT8 NOT NULL,
value VARCHAR(512),
key VARCHAR(100) NOT NULL,
PRIMARY KEY (user_id, key)
);

关于java - JPA Map<String,String> 对映射值长度的限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32787271/

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