public void testInsertWithQuery() { double pi = Math.PI; Criterion criterion = Thing.QUX.gt(pi); int numThingsMatching = database.count(Thing.class, criterion); // insert into testModels select foo, bar, isAlive from things where qux > 3.1415...; Query query = Query.select(Thing.FOO, Thing.BAR, Thing.IS_ALIVE).from(Thing.TABLE).where(criterion); Insert insert = Insert.into(TestModel.TABLE).columns(TestModel.LAST_NAME, TestModel.LUCKY_NUMBER, TestModel.IS_HAPPY).select(query); CompiledStatement compiled = insert.compile(database.getCompileContext()); verifyCompiledSqlArgs(compiled, 1, pi); int testModelsBeforeInsert = database.countAll(TestModel.class); assertEquals(3, database.insert(insert)); int testModelsAfterInsert = database.countAll(TestModel.class); assertEquals(testModelsBeforeInsert + numThingsMatching, testModelsAfterInsert); }