[ https://issues.apache.org/jira/browse/IGNITE-6190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16156751#comment-16156751 ]
Roman Shtykh commented on IGNITE-6190: -------------------------------------- Added {{setArgs(Collection args)}}. > SQL query fails silently if Set is passed as a parameter > -------------------------------------------------------- > > Key: IGNITE-6190 > URL: https://issues.apache.org/jira/browse/IGNITE-6190 > Project: Ignite > Issue Type: Bug > Reporter: Denis Magda > Assignee: Roman Shtykh > Attachments: TestIgniteQuery.zip > > > Seems like the SqlQuery API does not like {{Set<?>}} as the input parameter. > While this query doesn't work (the Set is used as an input): > {code} > public Map<String, Account> getAccountsForLe(Set<String> leId) { > SqlQuery<String, Account> query = > new SqlQuery<String, Account>(Account.class, "from Account join > table(id varchar = ?) i on Account.clientLegalEntityId = i.id") > .setArgs(leId); > Map<String, Account> results = new HashMap<>(); > _cache.query(query).getAll().stream().forEach(e -> > results.put(e.getKey(), e.getValue())); > return results; > } > {code} > This one works well (the Set is converted to Array explicitly): > {code} > public Map<String, Account> getAccountsForLe(Set<String> leId) { > SqlQuery<String, Account> query = > new SqlQuery<String, Account>(Account.class, "from Account join > table(id varchar = ?) i on Account.clientLegalEntityId = i.id") > .setArgs(leId.toArray()); > Map<String, Account> results = new HashMap<>(); > _cache.query(query).getAll().stream().forEach(e -> > results.put(e.getKey(), e.getValue())); > return results; > } > {code} > The fact that it fails silently is an issue. IMHO there should be some > validation to alert the calling code that the type specified is not valid or > the set has to be transformed to the array on the fly. -- This message was sent by Atlassian JIRA (v6.4.14#64029)