2016-09-17 4 views
0

HSQL을 사용하여 엔티티에 긴 텍스트를 저장해야하지만 작동하지 않습니다.JPA로 hsql에 CLOB를 올바르게 저장할 수 없습니다.

SELECT text FROM "PUBLIC"."DOCPART" 
text 
======================================= 
[email protected] 

나는이 JDBCClobClient를 얻을이 내가 대신 내가 할 텍스트의 데이터베이스에이 객체를

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

을 저장하고 확인할 때

여기 내 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; 
.... 
} 

입니다 @ 37c0372c 텍스트 대신 "큰 텍스트"

아이디어가 있으십니까?

+0

지속성을 유지하기 위해 호출 된 SQL은 무엇입니까? "entityManager.save (...)"란 무엇입니까? 그것을 검색하는 코드는 무엇입니까? JPA 제공자는 무엇입니까? ... –

+0

JPA 공급자가 최대 절전 모드이고, 실수로 entityManager.persist()를 작성했습니다. DDL은 엔티티의 정의에 의해 작성됩니다. –

+0

이 열 정의를 사용하는 경우 @Column (columnDefinition = "LONGVARCHAR") 긴 텍스트가 데이터베이스에 제대로 삽입되었지만 LONGVARCHAR은 이식 가능하지 않습니다. –

답변

0

정상적으로 작동하고 데이터가 제대로 삽입 된 것처럼 보입니다. [email protected]는 데이터가 CLOB에 저장되었음을 보여줍니다. 텍스트를 검색하려면 객체의 getXXX() 메소드를 호출합니다. CLOB 크기는 기가 바이트 이상일 수 있으므로 일반적으로 Clob에서 Reader 객체를 사용하여 내용을 검색합니다.

+0

아 좋아! GUI 만 사용하여 열의 내용을 확인하려고했습니다. 나는 getXXX 것을 시도하지 않았다. JPA를 통해 조사하면 작동 할 것입니다. 내가 너에게 알려주려고 노력할거야. 감사. –