@Override public boolean deleteResource(final long resourceId) { return querydslSupport.execute((connection, configuration) -> { QResource qResource = QResource.resource; long deletedRecordNum = new SQLDeleteClause(connection, configuration, qResource) .where(qResource.resourceId.eq(resourceId)) .execute(); return deletedRecordNum > 0; }); }
@Test public void clear() { QEmployee emp1 = new QEmployee("emp1"); SQLDeleteClause delete = new SQLDeleteClause(null, SQLTemplates.DEFAULT, emp1); delete.where(emp1.id.eq(1)); delete.addBatch(); assertEquals(1, delete.getBatchCount()); delete.clear(); assertEquals(0, delete.getBatchCount()); }
protected SQLDeleteClause delete(RelationalPath<?> e) { SQLDeleteClause sqlDeleteClause = new SQLDeleteClause(connection, configuration, e); sqlDeleteClause.addListener(new TestLoggingListener()); return sqlDeleteClause; }
/** * Created only for test purposes to purge the database * DO NOT USE IN PRODUCTION * @param queryFactory queryFactory to do all deletes in a single transaction */ public void deleteAll(PostgreSQLQueryFactory queryFactory) { final QAtlassianConnectDependencies atlassianConnectAddonData = new QAtlassianConnectDependencies(rdbmsSchemaService.get().getSandbox()); queryFactory.delete(atlassianConnectAddonData).execute(); } }
@Test public void schemaInWhere() { Configuration derbyWithPrintSchema = new Configuration(DerbyTemplates.builder().printSchema().build()); QEmployee e = QEmployee.employee; SQLDeleteClause delete = new SQLDeleteClause(EasyMock.createNiceMock(Connection.class), derbyWithPrintSchema, e); delete.where(e.id.gt(100)); assertEquals("delete from \"PUBLIC\".EMPLOYEE\n" + "where \"PUBLIC\".EMPLOYEE.ID > ?", delete.toString()); }
@Test public void batch() throws SQLException { insert(survey).values(2, "A","B").execute(); insert(survey).values(3, "B","C").execute(); SQLDeleteClause delete = delete(survey); delete.where(survey.name.eq("A")).addBatch(); assertEquals(1, delete.getBatchCount()); delete.where(survey.name.eq("B")).addBatch(); assertEquals(2, delete.getBatchCount()); assertEquals(2, delete.execute()); }
@Test public void delete_limit() { SQLDeleteClause clause = new SQLDeleteClause(null, createTemplates(), survey1); clause.where(survey1.name.eq("Bob")); clause.limit(5); assertEquals("delete top 5 from SURVEY\n" + "where SURVEY.NAME = ?", clause.toString()); }
@Test public void getSQL() { QEmployee emp1 = new QEmployee("emp1"); SQLDeleteClause delete = new SQLDeleteClause(null, SQLTemplates.DEFAULT, emp1); delete.where(emp1.id.eq(1)); SQLBindings sql = delete.getSQL().get(0); assertEquals("delete from EMPLOYEE\nwhere EMPLOYEE.ID = ?", sql.getSQL()); assertEquals(ImmutableList.of(1), sql.getBindings()); }
@Test(expected = IllegalArgumentException.class) @Ignore public void error() { QEmployee emp1 = new QEmployee("emp1"); QEmployee emp2 = new QEmployee("emp2"); SQLDeleteClause delete = new SQLDeleteClause(null, SQLTemplates.DEFAULT, emp1); delete.where(emp2.id.eq(1)); }
@Override public final SQLDeleteClause delete(RelationalPath<?> path) { return new SQLDeleteClause(connection, configuration, path); }
/** * Created only for test purposes to purge the database * DO NOT USE IN PRODUCTION * @param queryFactory queryFactory to do all deletes in a single transaction */ public void deleteAll(PostgreSQLQueryFactory queryFactory) { final QAtlassianConnectDescriptors atlassianConnectDescriptors = new QAtlassianConnectDescriptors(rdbmsSchemaService.get().getSandbox()); queryFactory.delete(atlassianConnectDescriptors).execute(); } }
@Test public void noSchemaInWhere() { Configuration defaultWithPrintSchema = new Configuration(new SQLTemplates(Keywords.DEFAULT, "\"", '\\', false, false)); defaultWithPrintSchema.getTemplates().setPrintSchema(true); QEmployee e = QEmployee.employee; SQLDeleteClause delete = new SQLDeleteClause(EasyMock.createNiceMock(Connection.class), defaultWithPrintSchema, e); delete.where(e.id.gt(100)); assertEquals("delete from PUBLIC.EMPLOYEE\n" + "where EMPLOYEE.ID > ?", delete.toString()); }
@Test @ExcludeIn({CUBRID, SQLITE}) public void batch_templates() throws SQLException { insert(survey).values(2, "A","B").execute(); insert(survey).values(3, "B","C").execute(); SQLDeleteClause delete = delete(survey); delete.where(survey.name.eq(Expressions.stringTemplate("'A'"))).addBatch(); delete.where(survey.name.eq(Expressions.stringTemplate("'B'"))).addBatch(); assertEquals(2, delete.execute()); }
@Override public void deleteBlob(final long blobId) { try (Connection connection = this.dataSource.getConnection()) { QBlobstoreBlob qBlob = QBlobstoreBlob.blobstoreBlob; long rowNum = new SQLDeleteClause(connection, this.querydslConfiguration, qBlob) .where(qBlob.blobId.eq(blobId)) .execute(); if (rowNum == 0) { throw new NoSuchBlobException(blobId); } } catch (SQLException e) { // TODO Auto-generated catch block throw new RuntimeException(e); } }
/** * Created only for test purposes to purge the database * DO NOT USE IN PRODUCTION * @param queryFactory queryFactory to do all deletes in a single transaction */ public void deleteAll(PostgreSQLQueryFactory queryFactory) { final QAtlassianConnectListing atlassianConnectAddonData = new QAtlassianConnectListing(rdbmsSchemaService.get().getSandbox()); queryFactory.delete(atlassianConnectAddonData).execute(); } }
@Test public void delete_with_subQuery_exists() { QSurvey survey1 = new QSurvey("s1"); QEmployee employee = new QEmployee("e"); SQLDeleteClause delete = new SQLDeleteClause(connection, SQLTemplates.DEFAULT,survey1); delete.where(survey1.name.eq("XXX"), selectOne().from(employee).where(survey1.id.eq(employee.id)).exists()); assertEquals("delete from SURVEY\n" + "where SURVEY.NAME = ? and exists (select 1\n" + "from EMPLOYEE e\n" + "where SURVEY.ID = e.ID)", delete.toString()); }