相关疑难解决方法(0)

使用JDBC的Postgres UTF-8 clobs

Postgres JDBC驱动程序似乎无法正确处理UTF-8 clobs.当您检索clob时,字符不正确(您获得了非ascii字符的标记).

据说这是一个已知问题:

幸运的是,对于我的应用程序,我通常会避免使用clobs,所以我所做的字段就是真正的大变种.

其他人如何处理这种限制?

java postgresql jdbc clob utf-8

7
推荐指数
2
解决办法
4876
查看次数

org.hibernate.type.TextType和Oracle

我们使用Hibernate作为JPA提供程序,我们有一个带有标记的大对象字段的类

@Lob
@Type( type = "org.hibernate.type.TextType" )
private String someString;
Run Code Online (Sandbox Code Playgroud)

该列创建为

SOMESTRING            LONG()             
Run Code Online (Sandbox Code Playgroud)

这与PostgreSQL和MySQL完美配合.使用Oracle时持久化对象

entityManager.persist( object );
Run Code Online (Sandbox Code Playgroud)

我们得到一个org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update例外.

删除@Type( type = "org.hibernate.type.TextType" )注释将解决Oracle的问题,但会引入PostgreSQL的编码问题,如使用Hibernate/PostgreSQL无法将Euro-sign存储到LOB字符串属性中所述

我想知道如何定义一个大文本字段,以便out程序可以在PostgreSQL和Oracle上运行.纯JPA解决方案是最佳的,但Hibernate特定的解决方案也是如此.

编辑:

真正的例外:

java.sql.BatchUpdateException: ORA-22295: cannot bind more than 4000 bytes data to LOB and LONG columns in 1 statement
Run Code Online (Sandbox Code Playgroud)

现在,我错过的例外解释了问题,实际上我持久化的对象比大字符串(至少一个长DBID)更多.

postgresql hibernate jpa oracle11g

7
推荐指数
1
解决办法
6295
查看次数

标签 统计

postgresql ×2

clob ×1

hibernate ×1

java ×1

jdbc ×1

jpa ×1

oracle11g ×1

utf-8 ×1