可以在(..)中弹出hibernatetemplate createSQLQuery多长时间?
问题描述:
是否有任何限制的声明我可以使用其中在(1,2,3,4,5,6 ....)在springSQLQuery中的spring hibernatetemplate()?可以在(..)中弹出hibernatetemplate createSQLQuery多长时间?
答
如前所述,Oracle有一个限制。一种解决方法是执行多个查询,每个查询都带有IN参数的子集。另一种是在子句中使用OR:where column in (:firstsubset) or column in (:secondsubset) or ...
某些数据库对总SQL字符串长度也有限制。我从来没有碰到过Oracle,但不会感到惊讶。
答
是的,但表示限制不是由Hibernate或Spring引起的,而是由底层数据库引起的。
例如,Oracle AFAIK在IN()子句中允许不超过1000个项目。最大语句长度通常也有限制。
答
我相信这取决于您使用的底层数据库。例如,Oracle用于限制您在IN子句中的1000个项目,我相信它仍然存在,但我不确定。你的数据库是什么?
+0
我使用的是oracle。我可以使用什么解决方法,如果我需要传递很长...在(..) – cometta 2009-12-10 01:35:14
我可以使用什么解决方法,如果我需要通过长...在哪里(..) – cometta 2009-12-10 01:38:21
@cometta你可以通过一个范围.. ..之间..? – pmu 2009-12-10 02:19:28
不能。 (..)中的值是唯一的随机值,并且不在范围内 – cometta 2009-12-10 02:23:47