我使用的是PostgreSQL 9.4、SpringBoot1.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))但不幸的是,编译器不喜欢这样。有什么简单的方法可以做到这一点吗?
发布于 2016-02-22 17:25:09
编译器不喜欢您的尝试,因为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"))https://stackoverflow.com/questions/35555119
复制相似问题