@Test @ExcludeIn(FIREBIRD) // too slow public void insertBatch_with_subquery() { SQLInsertClause insert = insert(survey) .columns(survey.id, survey.name) .select(query().from(survey2).select(survey2.id.add(20), survey2.name)) .addBatch(); insert(survey) .columns(survey.id, survey.name) .select(query().from(survey2).select(survey2.id.add(40), survey2.name)) .addBatch(); assertEquals(1, insert.execute()); }
@Test @ExcludeIn(FIREBIRD) // too slow public void insert_with_subQuery_Without_Columns() { int count = (int) query().from(survey).fetchCount(); assertEquals(count, insert(survey) .select(query().from(survey2).select(survey2.id.add(10), survey2.name, survey2.name2)) .execute()); }
@Test @ExcludeIn(FIREBIRD) // too slow public void insert_with_subQuery() { int count = (int) query().from(survey).fetchCount(); assertEquals(count, insert(survey) .columns(survey.id, survey.name) .select(query().from(survey2).select(survey2.id.add(20), survey2.name)) .execute()); }
@Test @ExcludeIn(FIREBIRD) // too slow public void insert_with_subQuery_Params() { Param<Integer> param = new Param<Integer>(Integer.class, "param"); SQLQuery<?> sq = query().from(survey2); sq.set(param, 20); int count = (int) query().from(survey).fetchCount(); assertEquals(count, insert(survey) .columns(survey.id, survey.name) .select(sq.select(survey2.id.add(param), survey2.name)) .execute()); }
@Test public void complex1() { // related to #584795 QSurvey survey = new QSurvey("survey"); QEmployee emp1 = new QEmployee("emp1"); QEmployee emp2 = new QEmployee("emp2"); SQLInsertClause insert = insert(survey); insert.columns(survey.id, survey.name); insert.select(select(survey.id, emp2.firstname).from(survey) .innerJoin(emp1) .on(survey.id.eq(emp1.id)) .innerJoin(emp2) .on(emp1.superiorId.eq(emp2.superiorId), emp1.firstname.eq(emp2.firstname))); assertEquals(0, insert.execute()); }
@Test @ExcludeIn({HSQLDB, CUBRID, DERBY}) public void insert_with_subQuery3() { // insert into modules(name) // select 'MyModule' // where not exists // (select 1 from modules where modules.name = 'MyModule') assertEquals(1, insert(survey).columns(survey.name).select( query().where(query().from(survey2) .where(survey2.name.eq("MyModule2")).notExists()) .select(Expressions.constant("MyModule2"))) .execute()); assertEquals(1L , query().from(survey).where(survey.name.eq("MyModule2")).fetchCount()); }