可以在(..)中弹出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个项目。最大语句长度通常也有限制。

+0

我可以使用什么解决方法,如果我需要通过长...在哪里(..) – cometta 2009-12-10 01:38:21

+0

@cometta你可以通过一个范围.. ..之间..? – pmu 2009-12-10 02:19:28

+0

不能。 (..)中的值是唯一的随机值,并且不在范围内 – cometta 2009-12-10 02:23:47

我相信这取决于您使用的底层数据库。例如,Oracle用于限制您在IN子句中的1000个项目,我相信它仍然存在,但我不确定。你的数据库是什么?

+0

我使用的是oracle。我可以使用什么解决方法,如果我需要传递很长...在(..) – cometta 2009-12-10 01:35:14