Java 在JOOQ中带有列表的IN谓词只返回第一个值
我有一个简单的select in JOOQ和in(List)谓词,但是这个查询的结果只针对列表中的第一个元素Java 在JOOQ中带有列表的IN谓词只返回第一个值,java,sql,jooq,Java,Sql,Jooq,我有一个简单的select in JOOQ和in(List)谓词,但是这个查询的结果只针对列表中的第一个元素 List<Integer> ids = context.select(TABLE1.ID).from(TABLE1).where( TABLE1.NAME.eq(name)).fetch().into(Integer.class); List<MyObject> myObjectList = con
List<Integer> ids = context.select(TABLE1.ID).from(TABLE1).where(
TABLE1.NAME.eq(name)).fetch().into(Integer.class);
List<MyObject> myObjectList = context.selectFrom(TABLE2)
.where(TABLE2.ID.in(ids))
.fetch().into(MyObject.class);
List ID=context.select(TABLE1.ID).from(TABLE1).其中(
表1.NAME.eq(NAME)).fetch().into(Integer.class);
List myObjectList=context.selectFrom(表2)
.其中(表2.ID.in(ids))
.fetch().into(MyObject.class);
数据样本
第一个查询结果->列表ID={1,2,3,4}
表2内容->
MyObject(1,A),
MyObject(2,B),
MyObject(3,C),
MyObject(4,D)
.........,
MyObject(21,Z)
第二个查询结果->MyObject(1,A)已解决
问题是第一个查询语法
Field<Integer> ids = context.select(TABLE1.ID).from(TABLE1).where(
TABLE1.NAME.eq(name)).asField();
List<MyObject> myObjectList = context.selectFrom(TABLE2)
.where(TABLE2.ID.in(ids))
.fetch().into(MyObject.class);
Field ID=context.select(TABLE1.ID).from(TABLE1).where(
表1.NAME.eq(NAME)).asField();
List myObjectList=context.selectFrom(表2)
.其中(表2.ID.in(ids))
.fetch().into(MyObject.class);
你能提供一些示例数据吗..好的,我已经编辑了帖子。这与问题无关,但我想我可以通过一个带有join而不是2的查询来完成。你确定你的事务确实有“table2内容”可用吗?@Varvarigos Emmanouil:我知道,但真正的查询很复杂,我尝试拆分以进行更好的调试