是否有任何限制的语句我可以在spring hibernatetemplate的createSQLQuery中使用 where(1,2,3,4,5,6 ....) ()?
答案 0 :(得分:2)
是的,但是说限制不是由Hibernate或Spring引起的,而是由底层数据库引起的。
例如,Oracle AFAIK在IN()子句中允许的项目不超过1000个。最大语句长度通常也有限制。
答案 1 :(得分:2)
如上所述,Oracle有一个限制。一种解决方法是执行多个查询,每个查询都包含IN参数的子集。另一种是在子句中使用OR:where column in (:firstsubset) or column in (:secondsubset) or ...
某些数据库对SQL字符串总长度也有限制。我从来没有遇到过甲骨文,但不会感到惊讶。
答案 2 :(得分:1)
我认为这取决于您使用的基础数据库。例如,Oracle曾经在IN子句中将你限制为1000个项目,我相信它仍然存在,但我不确定。你的数据库是什么?