使用JPA Annotations和Map <string,string>和varchar长度</string,string>

时间:2011-12-16 16:22:24

标签: java hibernate jpa

我有一个包含以下成员属性的实体:

@Id
protected String id;

@ElementCollection(targetClass = String.class)
@MapKeyClass(String.class)      
protected Map<String, String> data = new HashMap<String,String>();

这映射到两个表,一个ENTITY表和一个ENTITY_DATA表,其中包含HashMap中每个元素的行。它将HashMap中的值映射为VARCHAR(256),我需要它为VARCHAR(1024)。可以这样做吗?我无法在ElementCollection或MapKeyClass注释中找到允许这样做的任何内容。

1 个答案:

答案 0 :(得分:6)

因为正如你所说,问题在于价值观,因此它与一般的列一样。只需在该字段中添加以下注释即可。

@Column(columnDefinition = "varchar(1024)")

使用JPA 2.0,您也可以使用MapKeyColumn注释持久保存地图的键:

@MapKeyColumn(columnDefinition = "varchar(1024)")