无法使用JPA在hsql中正确保存CLOB

时间:2016-09-17 17:27:25

标签: jpa hsqldb clob

我需要使用HSQL在实体中保存一些长文本,但它不起作用。

这是我的JPA注释

@Entity
public class DocPart extends AbstractEntity{
....    
    /**
     * the text of this docPart, exctract from the comment in the odt.
     */
    @Column(columnDefinition = "clob")
    @Lob
    private String text;
....
}   

保存此对象时

docPart.setId(1); 
docPart.setText("A text that could be large");
entityManager.persist(docPart);

并检查数据库而不是我得到的文本

SELECT text FROM "PUBLIC"."DOCPART"
text
=======================================
org.hsqldb.jdbc.JDBCClobClient@37c0372c

我得到这个JDBCClobClient @ 37c0372c而不是文本“可能很大的文本”

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

看起来它工作正常并且数据已正确插入。 org.hsqldb.jdbc.JDBCClobClient@37c0372c显示数据保存在CLOB中。要检索文本,请调用该对象的getXXX()方法。 CLOB大小可能是一个几百字节或更多,因此通常的做法是使用来自clob的Reader对象检索内容。