字符串映射不能处理超过 varchar(255)

pir*_*-gh 2 java hibernate jpa

一旦 Map String(s) 的总长度大于 255,JPA 将无法提交事务。我在 Play 2 Framework 中使用 JPA 2.0。

@ElementCollection
private Map<EmailNotificationType, String> mailContents = new HashMap<>();
Run Code Online (Sandbox Code Playgroud)

我试过

@列(长度 = 2048)

@高球

@MapKeyColumn(长度 = 2048)

我想尽可能多地坚持下去,因为它的大小是动态的。

Pow*_*wer 6

对于通过谷歌登陆这里的人:

答案是:

@Column(columnDefinition = "TEXT")

或者

@Column(columnDefinition = "LONGTEXT")

之前必须删除DB的旧DB内容,如create-drop。更新不起作用。


Sem*_*ker 5

我认为你正在使用varchar(255). 使用text列而不是varchar(255).

在 PostgreSQL 中总是使用文本(当然除非有实际长度限制)。