アプリケーションで Hibernate + Oracle を使用しています
以下のコードでエラーが発生しています
例 1. 私の pojo クラス
public Test{
@Type(type = "blob2map")
public Map<String, String> param;
public Map<String, String> getParam() {
return param;
}
public void setParam(Map<String, String> param) {
this.param= param;
}
My Dao クラス メソッド
public List<BusinessObject> searchByExample(Class<BusinessObject> entity, BusinessObject example) { return getSession().createCriteria(entity).add( Example.create(example)).list(); }
ここで、ビジネス オブジェクトは Test.class であり、サンプル テストです。
hibernate orOracle10gDialect によって生成されたクエリは
this_.id,this_.param を Test where this_.param=? から選択します。
完全なエラー ログは
Exception in thread "main" java.sql.SQLException: ORA-00932: inconsistent datatypes: expected - got BLOB
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:305)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:272)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:623)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:181)
at oracle.jdbc.driver.T4CPreparedStatement.execute_for_describe(T4CPreparedStatement.java:420)
at oracle.jdbc.driver.OracleStatement.execute_maybe_describe(OracleStatement.java:896)
at oracle.jdbc.driver.T4CPreparedStatement.execute_maybe_describe(T4CPreparedStatement.java:452)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:986)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:2888)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:2929)
at com.csam.wsc.widget.management.BlobTester.showFilteredContent(BlobTester.java:55)
at com.csam.wsc.widget.management.BlobTester.main(BlobTester.java:98)