2009-12-23 247 views
2

我能救(彈簧休眠saveorupdate())字段無法從數據庫中獲取CLOB數據類型爲JPA實體

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

到Oracle數據庫中的數據類型是CLOB

但是當我嘗試找回它,我得到錯誤

ERROR - JDBCExceptionReporter.logExceptions(72) | ORA-00932:不一致的數據類型: 預期 - 有CLOB

下面

是如何從數據庫retrive

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); 

回答

6

從您的示例代碼中不清楚,但我的猜測是您嘗試按CLOB列排序,而Oracle不允許這樣做。這個錯誤代碼是Oracle對你說的這種迷人的方式。

您確定需要使用CLOB來存儲filnename嗎? Oracle可以在VARCHAR2列中存儲多達4000個字符,當然這對於文件名來說足夠了?如果你想按filename排序,那麼這就是你需要做的。

+0

我是對的。它是由它引起的排序 – cometta 2009-12-24 01:53:00

1

你有沒有過這樣涉水:

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

似乎有是Oracle 9i驅動程序和LOB的問題(不知道你的設置是什麼)。

+0

我升級到10gDialect,但仍然相同。 – cometta 2009-12-24 01:10:44

相關問題