2

我能够保存(spring-hibernate saveorupdate())字段

 @Lob
 @Column(name = "FILENAME")
 private String filename;

进入oracle数据库数据类型是clob

但是当我尝试检索它时,我得到了错误

错误 - JDBCExceptionReporter.logExceptions(72) | ORA-00932: 不一致的数据类型: 预期 - 得到 CLOB

下面是我如何从数据库中检索

DetachedCriteria crit = DetachedCriteria.forClass(Storagefile.class);
crit.addOrder(bSortOrder ? Order.asc(sortColumnId) : Order.desc(sortColumnId));
 List<Storagefile> result = (List<Storagefile>) getHibernateTemplate().findByCriteria(crit, nFirst, nPageSize);
4

2 回答 2

6

从您的示例代码中不清楚,但我的猜测是您正在尝试按 CLOB 列排序,而 Oracle 不允许这样做。该错误代码是 Oracle 告诉您这一点的迷人方式。

您确定需要使用 CLOB 来存储文件名吗?Oracle 在一列中最多可以存储 4000 个字符,VARCHAR2这对于文件名来说是否足够?如果你想按 排序filename,那么这就是你需要做的。

于 2009-12-23T12:44:43.823 回答
1

你有没有经历过这个:

https://www.hibernate.org/56.html

Oracle 9i 驱动程序和 LOB 似乎存在问题(不确定您的设置是什么)。

于 2009-12-23T10:06:05.280 回答