gpt4 book ai didi

java - 将空集设置为 SQL IN 参数时出现 SQLGrammarException

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:25:05 25 4
gpt4 key购买 nike

我的代码导致 SQLGrammarException当我将空集设置为 SQL IN 参数时:

Query query = this.entMngr.createNativeQuery("SELECT foo_id, first, last FROM foo WHERE bar IN :barSet");
//barSet is a Set<Integer>
query.setParameter("barSet", barSet);
//this throws exception
List<Object> nativeList = query.getResultList();

当集合不为空时一切正常。我怎样才能让这个集合(或提交的任何集合)是否被填充不可知?

最佳答案

这里的问题是 SQL 语法不允许空的 IN 子句。因此,在您的情况下,barSet 不应为空。但是您可以简单地将 null 添加到集合中,然后再将其传递给查询:

barSet.add(null);
query.setParameter("barSet", barSet);

你可以在这里阅读这个技巧:SQL In Clause with Zero to Many Parameters

关于java - 将空集设置为 SQL IN 参数时出现 SQLGrammarException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30108871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com