Hibernate Criteria.list() 发出"ORA-01401: inserted value too large for column"错误



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

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

编辑:

实际上,问题出在甲骨文上。在数据库 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'

我正在传递一列,该列确实在子句"排序依据"中包含超过 999 个字符。有关详细信息,请单击链接 1 和链接 2。

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

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

记录Hibernate生成的查询(hibernate.show_sql + hibernate.format_sql),并查看在错误之前执行了哪个特定语句。

相关内容

最新更新