我正在使用 PostgreSQL 9.4、Spring Boot 1.3.2 和 jOOQ 3.7。我想“jOOQify”以下查询
SELECT id FROM users WHERE username IN (SELECT * FROM UNNEST(?))
这样我就可以用 Spring 来运行它JdbcTemplate
通过传递一个列表或数组(在这种特殊情况下,一个List<String>
)。我试过了
DSLContext.select(
USERS.ID
)
.from(
USERS
)
.where(
USERS.USERNAME.in(...)
)
但我不知道该放什么...
。我尝试过类似的东西
DSLContext.select(field("*")).from(unnest(myList))
但不幸的是编译器不喜欢这样。有什么简单的方法可以实现这一目标吗?
编译器不喜欢你的尝试,因为USERS.USERNAME
is a 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"))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)