我使用PostgreSQL 9.4,Spring Boot 1.3.2和jOOQ 3.7。我想" jOOQify"以下查询
SELECT id FROM users WHERE username IN (SELECT * FROM UNNEST(?))
这样我就可以通过传递列表或数组(在这种特殊情况下为JdbcTemplate
)来运行Spring List<String>
。我试过了
DSLContext.select(
USERS.ID
)
.from(
USERS
)
.where(
USERS.USERNAME.in(...)
)
但我无法弄明白...
中的内容。我试过像
DSLContext.select(field("*")).from(unnest(myList))
但遗憾的是编译器并不喜欢这样。有什么简单的方法可以达到这个目的吗?
答案 0 :(得分:2)
编译器不喜欢您的尝试,因为USERS.USERNAME
是Field<String>
,因此in()
方法需要Select<? extends Record1<String>>
。
您可以这样修理:
select(field("*", String.class)).from(unnest(myList))
或者,或许好一点:
select(field(name("v"), String.class)).from(unnest(myList).as("t", "v"))