JPA和PostqreSQL:长字符串持久性

ema*_*mos 16 postgresql jpa

任何人都可以告诉我如何使用JPA持久化长文本(我使用PostgreSQL)?

这是我在班级中定义一个非常长的字符串的方式:

@Lob
private String  body;
Run Code Online (Sandbox Code Playgroud)

但是,这会在数据库中生成charactervarying(255)类型的字段.

此外,我尝试使用@Column注释:

@Column(columnDefinition="TEXT")
private String  body;
Run Code Online (Sandbox Code Playgroud)

但一切都是徒劳的.

我很感激有关这个问题的有用评论.

Jon*_*erg 18

@Column(columnDefinition="TEXT")
Run Code Online (Sandbox Code Playgroud)

确实是这样做的方式.也许你必须重新生成你的DDL?


小智 16

我今天遇到了同样的情况.只是

@Lob
private String  body;
Run Code Online (Sandbox Code Playgroud)

应该创建一个典型的"文本"的db列(PostgreSQL - 变量无限长),但应该重新生成表.


Ind*_*ity 12

这是一篇非常古老的帖子,但由于它有很多观点,即使在今天我也有类似的问题,我想这值得一个简单的答案.

我的解决方案类似,但我发现我需要该LONGTEXT列:

@Column(columnDefinition="LONGTEXT")
private String body;
Run Code Online (Sandbox Code Playgroud)

是的,你必须重新生成它.我正在玩Play!我不得不重启我的应用程序.

  • 你打算用LONGTEXT代替TEXT是什么意思?原因很缺失. (3认同)