如何在Hibernate中将CLOB数据类型转换为String?

Tin*_*iny 6 spring hibernate clob oracle10g

在hibernate(3.2.1.GA)中,我使用以下方法将CLOB类型数据插入Oracle(10g)数据库.

Hibernate.createClob(parameters.get("txtCatImage"));
Run Code Online (Sandbox Code Playgroud)

parametersMap存储所有请求参数的地方.Clob直接从数据库中检索数据类型时,这样的事情是entityObj.getCatImage()行不通的.

看到这个这个问题,但找不到方法.

以下是使用Clobtype属性的实体.

public class Category  implements java.io.Serializable {

    private Long catId; // Primary key.
    private Clob catImage; // CLOB type field.
    // Other fields.
    private static final long serialVersionUID = 1L;

    public Category() {}

    // Overloaded constructs + getters + setters + hashcode() + equals() + toString().
}
Run Code Online (Sandbox Code Playgroud)

Clob在这种情况下,数据库中的字段只存储图像文件名.

Dev*_*Dev 9

要么调用Clob.getSubString(long, int)适当的参数,以获得所需String或阅读的Clob作为InputStream或Reader使用Clob.getAsciiStream()Clob.getCharacterStream().

如果Clob的Integer.MAX_VALUE字符少于2147483647(aka ),则可以执行此操作

Clob clob = ... //Your clob
String clobString = clob.getSubString(0, clob.length());
Run Code Online (Sandbox Code Playgroud)

  • `getSubString()`:第一个字符位于第1位,而不是0,奇怪的是,这就是JavaDoc所说的 (6认同)