无法将数据库中的clob数据类型转换为JPA实体

com*_*tta 2 java oracle hibernate clob ora-00932

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

 @Lob
 @Column(name = "FILENAME")
 private String filename;
Run Code Online (Sandbox Code Playgroud)

进入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);
Run Code Online (Sandbox Code Playgroud)

ska*_*man 6

从您的示例代码中不清楚,但我的猜测是您尝试按CLOB列排序,而Oracle不允许这样做.这个错误代码是甲骨文告诉你的迷人方式.

您确定需要使用CLOB来存储filnename吗?Oracle可以在一VARCHAR2列中存储多达4000个字符,当然这对于文件名来说已经足够了?如果你想按照排序filename,那就是你需要做的事情.