2017-05-10 9 views
0

私はCLOB列を持つテーブル(Oracle)を使って作業しています。そして私はテーブルを照会するためにHibernateを使用しています。私は、データベースから単一の行を返すHibernateのクエリを実行することに成功し管理しているJava/HibernateでCLOBの長さを取得する方法

@Entity 
@Table(name="D2D_OPD_ORDERDELIVERY") 
public class D2dOpdOrderDelivery implements Serializable { 

// other column mappings omitted for brevity 

@Column(name="POD_SIGNATURE_IMG", nullable=true) 
@Lob 
private Clob podSignatureImage; 

:ここで私はOracleのテーブルをマップするために使用していたクラスで簡単に見ている

// Create a Hibernate query (HQL) 
Query query = session.createQuery("FROM D2dOpdOrderDelivery WHERE orderNumber = :orderNumber"); 
query.setParameter("orderNumber", orderNumber); 

私のコードのどこかで、私はClobのヌルチェックを実行します - ヌルではありません。次に、私は私のClobの長さを取得しようとします。そして、これが私が問題に遭遇するところです。次のエラーが表示されます。

java.sql.SQLException: Closed Connection 
    oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:113) 
    oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:147) 
    oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:209) 
    oracle.sql.CLOB.getDBAccess(CLOB.java:1212) 
    oracle.sql.CLOB.length(CLOB.java:223) 

ご迷惑をおかけして申し訳ございません。私はすでにクエリを実行しています(行の他のフィールドはすべて存在します)。なぜCLOBの長さを得ることができないのですか?

誰かが間違っている箇所を指摘できますか?

ありがとうございます。

答えて

0

この質問を投稿してから、もう一度インターネットにアクセスして検索しました。 http://www.javavids.com/video/how-to-read-data-from-blob-using-jpa-hibernate.html

と変更I:私はここに便利なリンクを見つけ、とにかく

...それはまた別の問題です - 私は私の質問を掲示し、私は前に、そののかなり良い仕事をしたと思いました私のコードに行われた:

@Column(name="POD_SIGNATURE_IMG", nullable=true) 
@Lob 
@Basic(fetch=FetchType.LAZY) 
private char[] podSignatureImage; 

私は

...これは他の誰かに便利です[]

その後、希望私の文字の上に.LENGTH呼び出すことができました

関連する問題