字符串映射不能处理varchar(255)以上

时间:2015-02-23 09:38:16

标签: java hibernate jpa

一旦Map String的总长度大于255,JPA就无法提交事务。我正在使用JPA 2.0和Play 2 Framework。

@ElementCollection
private Map<EmailNotificationType, String> mailContents = new HashMap<>();

我试过

  

@Column(length = 2048)

     

@Lob

     

@MapKeyColumn(length = 2048)

我希望尽可能坚持,因为它的大小是动态的。

2 个答案:

答案 0 :(得分:1)

我认为您正在使用varchar(255)。使用text列代替varchar(255)

在PostgreSQL中总是使用文本(除非当然有一个真正的长度约束)。

答案 1 :(得分:1)

对于那些通过谷歌登陆的人:

答案是:

@Column(columnDefinition =“TEXT”)

@Column(columnDefinition =“LONGTEXT”)

之前必须删除数据库的旧DB内容,例如create-drop。更新无效。