私は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の長さを得ることができないのですか?
誰かが間違っている箇所を指摘できますか?
ありがとうございます。