我正在执行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'
答案 0 :(得分:0)
Hibernate的会话就像一个缓存,实体写入仅在最后一刻或刷新会话时持久保存到数据库。
我的猜测是list()
触发了一些先前修改过的实体对数据库的插入或更新。这样做是因为Hibernate需要保证list()
永远不会返回过时或不正确的数据。
Log the queries Hibernate generates(hibernate.show_sql
+ hibernate.format_sql
)并查看错误之前执行的特定语句。