Hello Pelle,

I am not able to reproduce this right now. Can you provide me with a
minimal example for reproduction? Something along these lines:

Table<?> table = ...
String columnName = ...
Set<String> values = ...
Factory f = new Factory(dialect);
String sql = f.selectFrom(table).where(Factory.fieldByName(String.class,
columnName).in(values)).getSQL();

Note, that your variable binding is wrong. If you have two values in your
set, jOOQ will generate two bind variables: "... IN (?, ?)". In that case,
you'll have to iterate over your set, and bind every value one-by-one.

Cheers
Lukas

2012/11/2 <[email protected]>

> Hi,
> I am trying to use a collection of strings in an in clause. The collection
> contains the following values "STCTEST" and "ABCD". I want the generated
> sql to look like IN ('STCTEST', 'ABCD*) but JOOQ generates IN ('[STCTEST,
> ABCD]'). Not sure what I am missing;
> The code used is as follows:
>
> private void addToSql(SimpleSelectConditionStep<Record> sql,
> String columnName, Set<String> values, AtomicInteger index) {
> if (values != null && values.size() > 0) {
> sql.and(Factory.fieldByName(String.class, columnName).in(values));
> sql.bind(index.getAndIncrement(), values);
> }
> }
>
> /Pelle
>

Reply via email to