@Override protected SQLUpdateClause setOrdinal(SQLUpdateClause versionUpdateBatch, long ordinal) { return versionUpdateBatch.set(options.version.ordinal, ordinal); }
private void squashParent(Revision revision, Revision parentRevision) { options.queryFactory .update(options.parent) .set(options.parent.status, SQUASHED) .where(options.parent.revision.eq(revision), options.parent.parentRevision.eq(parentRevision)) .execute(); }
private void squashProperty(Revision revision, PropertyPath path) { options.queryFactory .update(options.property) .set(options.property.status, SQUASHED) .where(options.property.revision.eq(revision), options.property.path.eq(path.toString())) .execute(); }
@Test public void update_where() { SQLUpdateClause updateClause = new SQLUpdateClause(connection,SQLTemplates.DEFAULT,survey); updateClause.set(survey.id, 1); updateClause.set(survey.name, (String) null); updateClause.where(survey.name.eq("XXX")); assertEquals("update SURVEY\nset ID = ?, NAME = ?\nwhere SURVEY.NAME = ?", updateClause.toString()); }
@Test public void setNull() { List<Path<?>> paths = Collections.<Path<?>>singletonList(survey.name); List<?> values = Collections.singletonList(null); long count = query().from(survey).fetchCount(); assertEquals(count, update(survey).set(paths, values).execute()); }
@Test(expected = IllegalStateException.class) public void noConnection() { QEmployee emp1 = new QEmployee("emp1"); SQLUpdateClause update = new SQLUpdateClause(null, SQLTemplates.DEFAULT, emp1); update.set(emp1.id, 1); update.execute(); }
@Test public void getSQL() { QEmployee emp1 = new QEmployee("emp1"); SQLUpdateClause update = new SQLUpdateClause(null, SQLTemplates.DEFAULT, emp1); update.set(emp1.id, 1); SQLBindings sql = update.getSQL().get(0); assertEquals("update EMPLOYEE\nset ID = ?", sql.getSQL()); assertEquals(ImmutableList.of(1), sql.getBindings()); }
@Test public void update3() { assertEquals(1, update(survey).set(survey.name, survey.name.append("X")).execute()); }
@Test public void update_limit() { SQLUpdateClause clause = new SQLUpdateClause(null, createTemplates(), survey1); clause.set(survey1.name, "Bob"); clause.limit(5); assertEquals("update top 5 SURVEY\n" + "set NAME = ?", clause.toString()); }
@Test public void setNull2() { long count = query().from(survey).fetchCount(); assertEquals(count, update(survey).set(survey.name, (String) null).execute()); }
@Test public void clear() { QEmployee emp1 = new QEmployee("emp1"); SQLUpdateClause update = new SQLUpdateClause(null, SQLTemplates.DEFAULT, emp1); update.set(emp1.id, 1); update.addBatch(); assertEquals(1, update.getBatchCount()); update.clear(); assertEquals(0, update.getBatchCount()); }
@Test public void batch_templates() throws SQLException { assertEquals(1, insert(survey).values(2, "A","B").execute()); assertEquals(1, insert(survey).values(3, "B","C").execute()); SQLUpdateClause update = update(survey); update.set(survey.name, "AA").where(survey.name.eq(Expressions.stringTemplate("'A'"))).addBatch(); update.set(survey.name, "BB").where(survey.name.eq(Expressions.stringTemplate("'B'"))).addBatch(); assertEquals(2, update.execute()); }
@Test public void update5() { assertEquals(1, insert(survey).values(3, "B","C").execute()); assertEquals(1, update(survey).set(survey.name, "BB").where(survey.name.eq("B")).execute()); }
@Test public void update4() { assertEquals(1, insert(survey).values(2, "A","B").execute()); assertEquals(1, update(survey).set(survey.name, "AA").where(survey.name.eq("A")).execute()); }
@Test public void update_with_subQuery_exists() { QSurvey survey1 = new QSurvey("s1"); QEmployee employee = new QEmployee("e"); SQLUpdateClause update = update(survey1); update.set(survey1.name, "AA"); update.where(selectOne().from(employee).where(survey1.id.eq(employee.id)).exists()); assertEquals(1, update.execute()); }
@Test @IncludeIn({CUBRID, H2, MYSQL, ORACLE, SQLSERVER}) public void update_limit() { assertEquals(1, insert(survey).values(2, "A","B").execute()); assertEquals(1, insert(survey).values(3, "B","C").execute()); assertEquals(2, update(survey).set(survey.name, "S").limit(2).execute()); }
@Test public void update_with_subQuery_exists_Params() { QSurvey survey1 = new QSurvey("s1"); QEmployee employee = new QEmployee("e"); Param<Integer> param = new Param<Integer>(Integer.class, "param"); SQLQuery<?> sq = query().from(employee).where(employee.id.eq(param)); sq.set(param, -12478923); SQLUpdateClause update = update(survey1); update.set(survey1.name, "AA"); update.where(sq.exists()); assertEquals(0, update.execute()); }
@Test public void update() throws SQLException { // original state long count = query().from(survey).fetchCount(); assertEquals(0, query().from(survey).where(survey.name.eq("S")).fetchCount()); // update call with 0 update count assertEquals(0, update(survey).where(survey.name.eq("XXX")).set(survey.name, "S").execute()); assertEquals(0, query().from(survey).where(survey.name.eq("S")).fetchCount()); // update call with full update count assertEquals(count, update(survey).set(survey.name, "S").execute()); assertEquals(count, query().from(survey).where(survey.name.eq("S")).fetchCount()); }