One technical (and probably way out of scope!) way to handle this would be to use a temp table, do a batch insert of the values, then change the " in (v1, v2, v3...)" to " in (select v from temp)".
On 12/01/2011 04:20 AM, Emmanuel Bernard wrote: > Ah good point, I haven't thought of that problem with query splitting > > On 30 nov. 2011, at 22:20, Steve Ebersole wrote: > >> Splitting is not always an option. Consider a predicate like: >> >> ... where a in (x1, ... x2000) and b in (y1, ... y2000) ... >> >> If you split this up, you will have misses. Yes, it works if you can keep >> it all in one query because you can structure it to maintain the original >> semantics. However, please read the comments on that JIRA issue. For some >> databases, this restriction is not just on the number of elements in a >> in-list, but on the number of parameters overall. Splitting these 2 >> in-lists about into 4 does not address that. >> >> I commented on the issue that I am actually inclined to simply reject this >> one. In fact, I thought we already did. Maybe that was another earlier one? >> >> >> On Wed 30 Nov 2011 04:45:55 AM CST, Emmanuel Bernard wrote: >>> Also note that there is a limit for the query size globally in some vendors >>> and that people relieved from HHH-1123 cal fall into the second limit. >>> A solution would be for Hibernate to split one query into several but I'm >>> not sure I like the idea. >>> >>> Emmanuel >>> >>> On 29 nov. 2011, at 21:29, Łukasz Antoniak wrote: >>> >>>> Hi all! >>>> >>>> Recently I had a closer look at HHH-1123 issue. This bug affects both - >>>> Criteria API and HQL. I have introduced >>>> Dialect#maximumInExpressionElements() method which returns maximum >>>> number of allowed elements in a single SQL IN clause, or null treated as >>>> infinite. The change of InExpression was very easy. However, fixing this >>>> bug for HQL queries requires modification of ParameterMetadata >>>> (namedDescriptorMap cannot remain unmodifiable), as well as >>>> AbstractQueryImpl (queryString). As I don't see any other solution, I >>>> wanted to ask you guys for suggestions. Is it the only possible way of >>>> fixing this issue? Finally, shall we really fix this? This is a DB >>>> vendor limitation, but 40 user gave their vote for it. >>>> >>>> Regards, >>>> Lukasz Antoniak >>>> _______________________________________________ >>>> hibernate-dev mailing list >>>> hibernate-dev@lists.jboss.org >>>> https://lists.jboss.org/mailman/listinfo/hibernate-dev >>> >>> _______________________________________________ >>> hibernate-dev mailing list >>> hibernate-dev@lists.jboss.org >>> https://lists.jboss.org/mailman/listinfo/hibernate-dev >> -- >> st...@hibernate.org >> http://hibernate.org > > _______________________________________________ > hibernate-dev mailing list > hibernate-dev@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/hibernate-dev _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev