我对Oracle数据库有SELECT
查询,我希望以两种方式运行:
直接在SQLDeveloper中
在Eclipse中使用Hibernate,作为本机SQL查询。
我想通过将结果与SQDeveloper方式进行比较来确保Hibernate方式有效。 为此,我需要在Eclipse控制台上打印结果:这是我收到错误的时候。
查询如下所示:
Query query = session.createSQLQuery("SELECT ... FROM ... AS b").addScalar("b", ClobType.INSTANCE);
因此,它应该返回[]Clob
的列表。
要打印结果,我这样做:
List l = query.list();
for (final Object row : l) {
final Object[] columns = (Object[]) row;
// use columns[0], columns[1] etc
System.out.println(((Clob) columns[0]).getSubString(0, 20));
}
我在以下行收到错误:final Object[] columns = (Object[]) row;
它说: com.sun.proxy。$ Proxy24无法转换为[Ljava.lang.Object;
确实,当我想知道l.get(0)
的课程时:
System.out.println(l.get(0).getClass());
它说:class com.sun.proxy.$Proxy24
但通常情况下,它应为[]Object
。
所以我无法访问l.get(0)
因为我不知道它的类以及如何处理它。
我在其他地方搜索过该问题,但没有找到相关信息。
最后一个问题是我无法将我的结果与SQLDeveloper方法进行比较,以确保Hibernate方式有效。
感谢您的帮助。