以前遇到这类问题第一个反应就是觉得客户端和服务端的编码不一样导致的。所以一开始也是那么认为的。以为我们项目使用的是pgsql,默认的就是utf-8,然后我们使用了字符也是utf-8,并且还有一个问题就是说一般的string类型(数据库映射为varchar)显示的是正常的,然后我就 ...
以前遇到这类问题第一个反应就是觉得客户端和服务端的编码不一样导致的。所以一开始也是那么认为的。以为我们项目使用的是pgsql,默认的就是utf-8,然后我们使用了字符也是utf-8,并且还有一个问题就是说一般的string类型(数据库映射为varchar)显示的是正常的,然后我就有些抓不着头脑了,去google和百度都没有找到合适的答案。都没有解决。
问题是我们在JPA项目中使用了@Lob注解。这个注解的解释是这样的:
@Lob 注解属性将被持久化为 Blog 或 Clob 类型。
- Clob(Character Large Ojects)类型是长字符串类型,具体的java.sql.Clob, Character[], char[] 和 java.lang.String 将被持久化为 Clob 类型。
- Blob(Binary Large Objects)类型是字节类型,具体的java.sql.Blob, Byte[], byte[] 和 serializable type 将被持久化为 Blob 类型。
- @Lob 持久化为Blob或者Clob类型,根据get方法的返回值不同,自动进行Clob和Blob的转换。
- 因为这两种类型的数据一般占用的内存空间比较大,所以通常使用延迟加载的方式,与@Basic标记同时使用,设置加载方式为FetchType.LAZY
但是很可惜,我明明是String类型的,但是还是乱码
@Lob @Basic(fetch=FetchType.LAZY) private String content;
原标题:使用JPA储存Text类型的时候 出现乱码的问题
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。