不能将oracle.sql.BFILE强制转换为oracle.sql.BFILE

i7uaboj4  于 2023-10-16  发布在  Oracle
关注(0)|答案(1)|浏览(121)

在阅读了一遍又一遍甲骨文的文档,不知道为什么我有这个例外
原因:java.lang.ClassCastException:不能将oracle.sql.BFILE强制转换为oracle.sql.BFILE

@Inject
@OracleProduction
private EntityManager em;

public String readBfileImage() {
    Session hibernateSession = em.unwrap(Session.class);
    SessionImplementor sessionImplementor = hibernateSession.unwrap(SessionImplementor.class);
    Connection connection = sessionImplementor.connection();

    Statement stmt = null;
    BFILE my_bfile = null;
    String result = "";
    try {
        stmt = connection.createStatement();
        ResultSet rs = stmt.executeQuery("SELECT BFILE_COLUMN FROM TABLE_NAME where PARAM = 1");
        while (rs.next()) {
            BFILE objImagen = (BFILE) rs.getObject(1); // HERE THE EXCEPTION, WHY?

            System.out.println(objImagen.getName());
        }
        String ruta = my_bfile.getName();
        result = Base64.getEncoder().encodeToString(my_bfile.getBytes());
    } catch (SQLException e) {
        //throwing the exception
    }
    return result;
}

此外,我需要找到一种方法来持久化这个文件列中的图像,但 * 几乎 * 不能使用这种方式阅读,希望阅读答案!
除此之外,我想分享下面的图像,以注意语句或resultSet的类型是WrapperResultSetJDK 8,这是什么意思?

dxpyg8gm

dxpyg8gm1#

您能尝试用java.sql.Blob替换oracle.jdbc.OracleBlob吗?

相关问题