Skip to content

Instantly share code, notes, and snippets.

@fge
Created April 12, 2015 13:27
Show Gist options
  • Save fge/125be47fd02ae2516071 to your computer and use it in GitHub Desktop.
Save fge/125be47fd02ae2516071 to your computer and use it in GitHub Desktop.
private List<ParseTreeNode> getNodes(final Condition condition)
{
final Field<Integer> children = DSL.count().as("nrChildren");
final Table<Record2<Integer, Integer>> subnodes
= jooq.select(NODES.PARENT_ID, children)
.from(NODES)
.groupBy(NODES.PARENT_ID)
.asTable();
final Field<Integer> parentId = subnodes.field(NODES.PARENT_ID);
final Field<Integer> nrChildren = subnodes.field(children);
return jooq.select(NODES.PARENT_ID, NODES.ID, NODES.LEVEL,
NODES.SUCCESS, MATCHERS.CLASS_NAME, MATCHERS.MATCHER_TYPE,
MATCHERS.NAME, NODES.START_INDEX, NODES.END_INDEX, NODES.TIME,
nrChildren)
.from(NODES, MATCHERS, subnodes)
.where(MATCHERS.ID.eq(NODES.MATCHER_ID))
.and(parentId.eq(NODES.ID))
.and(condition)
.fetch().map(ParseTreeNodeMapper.INSTANCE);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment