2

アプリケーションで 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;
}
  1. 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)
4

0 に答える 0