Hibernate Criteria.list()发出“ORA-01401:插入的值太大而不能列”错误

时间:2014-01-09 20:24:50

标签: java hibernate

我正在执行Hibernate Criteria.list()并收到错误:

  

ORA-01401:插入的值对于列来说太大了。

修改

问题出在Oracle身上。在Oracle数据库中存在的参数中,有一个NLS_SORT,其工作方式如下:

NLS_SORT=WEST_EUROPEAN; //limits the clause 'order by' for a column that not exceed 999 characters

NLS_SORT=BINARY; //accepts values greater than 999 characters on the clause 'order by'

我传递的一个列在'order by'子句中包含超过999个字符。有关详情,请点击link1link2

1 个答案:

答案 0 :(得分:0)

Hibernate的会话就像一个缓存,实体写入仅在最后一刻或刷新会话时持久保存到数据库。

我的猜测是list()触发了一些先前修改过的实体对数据库的插入或更新。这样做是因为Hibernate需要保证list()永远不会返回过时或不正确的数据。

Log the queries Hibernate generateshibernate.show_sql + hibernate.format_sql)并查看错误之前执行的特定语句。