有人能告诉我如何使用JPA(我使用PostgreSQL)来保存长文本吗?
这是我在班级中定义一个非常长的字符串的方式:
@Lob
private String body;
但是,这会在数据库中生成 charactervarying(255)类型的字段。
此外,我尝试使用@Column注释:
@Column(columnDefinition="TEXT")
private String body;
但是一切都是徒劳的。
我很感激有关这个问题的评论。
答案 0 :(得分:18)
@Column(columnDefinition="TEXT")
确实是这样做的方式。也许你必须重新生成你的DDL?
答案 1 :(得分:15)
我今天遇到了同样的情况。 刚
@Lob
private String body;
应创建一个典型“text”的db列(PostgreSQL - 变量无限长度),但应该重新生成表。
答案 2 :(得分:11)
这是一篇非常古老的帖子,但由于它有很多观点,即使在今天我也有类似的问题,我想这值得一个简单的答案。
我的解决方案类似,但我发现我需要LONGTEXT
列代替:
@Column(columnDefinition="LONGTEXT")
private String body;
是的,你必须重新生成它。我正在玩Play!我不得不重启我的应用程序。
答案 3 :(得分:0)
您还可以使用验证注释:
@Size(max=xxx)
当然,这也可以作为验证约束。
答案 4 :(得分:0)
JPA,PostgreSQL 您可以使用:
@Column(length = 2000)
private String template;
它生成:
template character varying(2000)
答案 5 :(得分:0)
我不知道为什么,但我添加了 @列(长度 = 1024)
在 getter 之上,它可以工作。