JPA @Lob属性编码不能与PostgreSQL文本一起使用

时间:2016-03-21 02:26:24

标签: hibernate postgresql jpa encoding lob

JPA Mapping

我正在使用JPA和Hibernate。我有一个 @Lob 属性

的实体
@Column(nullable=false)
@Lob
private String text;

我正在使用PostgreSQL 8.4,并且实体已正确映射到列

"text" text NOT NULL

我的观看页面使用UTF-8编码,我的网址连接也使用正确的编码:

<property name="url" value="jdbc:postgresql://myhostip:port/mydb?useUnicode=yes&amp;characterEncoding=UTF-8" />

另外,posgreSQL上的 client_encoding Unicode (使用查询工具)或 UTF-8 (使用psql)。

问题

虽然我可以读取/保留数据,但是当我显示它时会出现一些编码问题,例如显示 。

另一个信息是,在同一个实体上,我有另一个 String 属性,正确显示了@Lob属性的相同内容。

我还将 psql 中的 text 属性导出到 test.txt 文件,内容正常。

我在持久化(调试)之前测试了属性的值,并且值是正确的。

1 个答案:

答案 0 :(得分:3)

基于this尝试在@Type(type="org.hibernate.type.StringClobType")之后添加注释@Lob