本文整理了Java中com.datastax.driver.core.ResultSet.wasApplied
方法的一些代码示例,展示了ResultSet.wasApplied
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ResultSet.wasApplied
方法的具体详情如下:
包路径:com.datastax.driver.core.ResultSet
类名称:ResultSet
方法名:wasApplied
[英]If the query that produced this ResultSet was a conditional update, return whether it was successfully applied.
This is equivalent to calling:
rs.one().getBool("[applied]");
For consistency, this method always returns true for non-conditional queries (although there is no reason to call the method in that case). This is also the case for conditional DDL statements ( CREATE KEYSPACE... IF NOT EXISTS, CREATE TABLE... IF), for which Cassandra doesn't return an [applied] column.
Note that, for versions of Cassandra strictly lower than 2.0.9 and 2.1.0-rc2, a server-side bug (CASSANDRA-7337) causes this method to always return true for batches containing conditional queries.
[中]如果生成此结果集的查询是条件更新,则返回是否已成功应用。
这相当于呼叫:
rs.one().getBool("[applied]");
为了一致性,对于非条件查询,此方法始终返回true(尽管在这种情况下没有理由调用此方法)。条件DDL语句也是如此(CREATE KEYSPACE…如果不存在,CREATE TABLE…如果不存在),Cassandra不会为其返回[applied]列。
请注意,对于严格低于2.0.9和2.1.0-rc2的Cassandra版本,服务器端错误(Cassandra-7337)会导致此方法对于包含条件查询的批始终返回true。
代码示例来源:origin: testcontainers/testcontainers-java
@Override
public void execute(String statement, String scriptPath, int lineNumber, boolean continueOnError, boolean ignoreFailedDrops) {
try {
ResultSet result = getConnection().execute(statement);
if (result.wasApplied()) {
log.debug("Statement {} was applied", statement);
} else {
throw new ScriptStatementFailedException(statement, lineNumber, scriptPath);
}
} catch (DriverException e) {
throw new ScriptStatementFailedException(statement, lineNumber, scriptPath, e);
}
}
代码示例来源:origin: Netflix/conductor
@Override
public boolean removeWorkflow(String workflowId) {
Workflow workflow = getWorkflow(workflowId, true);
boolean removed = false;
// TODO: calculate number of shards and iterate
if (workflow != null) {
try {
recordCassandraDaoRequests("removeWorkflow", "n/a", workflow.getWorkflowName());
ResultSet resultSet = session.execute(deleteWorkflowStatement.bind(UUID.fromString(workflowId), DEFAULT_SHARD_ID));
if (resultSet.wasApplied()) {
removed = true;
}
} catch (Exception e) {
Monitors.error(CLASS_NAME, "removeWorkflow");
String errorMsg = String.format("Failed to remove workflow: %s", workflowId);
LOGGER.error(errorMsg, e);
throw new ApplicationException(ApplicationException.Code.BACKEND_ERROR, errorMsg);
}
workflow.getTasks().forEach(this::removeTaskLookup);
}
return removed;
}
代码示例来源:origin: Netflix/conductor
private boolean removeTask(Task task) {
// TODO: calculate shard number based on seq and maxTasksPerShard
try {
// get total tasks for this workflow
WorkflowMetadata workflowMetadata = getWorkflowMetadata(task.getWorkflowInstanceId());
int totalTasks = workflowMetadata.getTotalTasks();
// remove from task_lookup table
removeTaskLookup(task);
recordCassandraDaoRequests("removeTask", task.getTaskType(), task.getWorkflowType());
// delete task from workflows table and decrement total tasks by 1
BatchStatement batchStatement = new BatchStatement();
batchStatement.add(deleteTaskStatement.bind(UUID.fromString(task.getWorkflowInstanceId()), DEFAULT_SHARD_ID, task.getTaskId()));
batchStatement.add(updateTotalTasksStatement.bind(totalTasks - 1, UUID.fromString(task.getWorkflowInstanceId()), DEFAULT_SHARD_ID));
ResultSet resultSet = session.execute(batchStatement);
return resultSet.wasApplied();
} catch (Exception e) {
Monitors.error(CLASS_NAME, "removeTask");
String errorMsg = String.format("Failed to remove task: %s", task.getTaskId());
LOGGER.error(errorMsg, e);
throw new ApplicationException(ApplicationException.Code.BACKEND_ERROR, errorMsg);
}
}
代码示例来源:origin: testcontainers/testcontainers-java
private void testInitScript(CassandraContainer cassandraContainer) {
ResultSet resultSet = performQuery(cassandraContainer, "SELECT * FROM keySpaceTest.catalog_category");
assertTrue("Query was not applied", resultSet.wasApplied());
Row row = resultSet.one();
assertEquals("Inserted row is not in expected state", 1, row.getLong(0));
assertEquals("Inserted row is not in expected state", "test_category", row.getString(1));
}
代码示例来源:origin: testcontainers/testcontainers-java
@Test
public void testCassandraQueryWaitStrategy() {
try (
CassandraContainer cassandraContainer = new CassandraContainer<>()
.waitingFor(new CassandraQueryWaitStrategy())
) {
cassandraContainer.start();
ResultSet resultSet = performQuery(cassandraContainer, "SELECT release_version FROM system.local");
assertTrue("Query was not applied", resultSet.wasApplied());
}
}
代码示例来源:origin: testcontainers/testcontainers-java
@Test
public void testSimple() {
try (CassandraContainer cassandraContainer = new CassandraContainer<>()) {
cassandraContainer.start();
ResultSet resultSet = performQuery(cassandraContainer, "SELECT release_version FROM system.local");
assertTrue("Query was not applied", resultSet.wasApplied());
assertNotNull("Result set has no release_version", resultSet.one().getString(0));
}
}
代码示例来源:origin: testcontainers/testcontainers-java
@Test
public void testSpecificVersion() {
String cassandraVersion = "3.0.15";
try (CassandraContainer cassandraContainer = new CassandraContainer<>("cassandra:" + cassandraVersion)) {
cassandraContainer.start();
ResultSet resultSet = performQuery(cassandraContainer, "SELECT release_version FROM system.local");
assertTrue("Query was not applied", resultSet.wasApplied());
assertEquals("Cassandra has wrong version", cassandraVersion, resultSet.one().getString(0));
}
}
代码示例来源:origin: testcontainers/testcontainers-java
@Test
public void testCassandraGetCluster() {
try (CassandraContainer cassandraContainer = new CassandraContainer<>()) {
cassandraContainer.start();
ResultSet resultSet = performQuery(cassandraContainer.getCluster(), "SELECT release_version FROM system.local");
assertTrue("Query was not applied", resultSet.wasApplied());
assertNotNull("Result set has no release_version", resultSet.one().getString(0));
}
}
代码示例来源:origin: testcontainers/testcontainers-java
@Test
public void testConfigurationOverride() {
try (
CassandraContainer cassandraContainer = new CassandraContainer<>()
.withConfigurationOverride("cassandra-test-configuration-example")
) {
cassandraContainer.start();
ResultSet resultSet = performQuery(cassandraContainer, "SELECT cluster_name FROM system.local");
assertTrue("Query was not applied", resultSet.wasApplied());
assertEquals("Cassandra configuration is not overridden", TEST_CLUSTER_NAME_IN_CONF, resultSet.one().getString(0));
}
}
代码示例来源:origin: kaaproject/kaa
private T insertLocked(T entity) {
Insert insert = insertInto(getColumnFamilyName()).ifNotExists();
CassandraEntityMapper<T> entityMapper = CassandraEntityMapper.getEntityMapperForClass(
getColumnFamilyClass(), cassandraClient);
for (String name : entityMapper.getKeyColumnNames()) {
insert.value(name, entityMapper.getColumnValueForName(name, entity, cassandraClient));
}
for (String name : entityMapper.getNonKeyColumnNames()) {
insert.value(name, entityMapper.getColumnValueForName(name, entity, cassandraClient));
}
insert.setConsistencyLevel(getWriteConsistencyLevel());
ResultSet res = execute(insert);
if (!res.wasApplied()) {
LOG.error("[{}] Can't insert entity. Entity already exists!", getColumnFamilyClass());
throw new KaaOptimisticLockingFailureException("Can't insert entity. Entity already exists!");
} else {
Clause[] whereClauses = buildKeyClauses(entityMapper, entity);
Select.Where where = select().from(getColumnFamilyName()).where(whereClauses[0]);
if (whereClauses.length > 1) {
for (int i = 1; i < whereClauses.length; i++) {
where = where.and(whereClauses[i]);
}
}
return findOneByStatement(where);
}
}
代码示例来源:origin: kaaproject/kaa
if (!res.wasApplied()) {
LOG.error("[{}] Can't update entity with version {}. Entity already changed!",
getColumnFamilyClass(), version);
代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core
/**
* Test for #JAVA-358 - Directly expose CAS_RESULT_COLUMN.
*
* <p>This test makes sure that the boolean flag {@code ResultSet.wasApplied()} is false when we
* try to insert a row which already exists.
*
* @see ResultSet#wasApplied()
*/
@Test(groups = "short")
public void insert_if_not_exist_should_support_wasApplied_boolean() {
// First, make sure the test table and the row exist
session().execute("CREATE TABLE IF NOT EXISTS Java358 (key int primary key, value int)");
ResultSet rs;
rs = session().execute("INSERT INTO Java358(key, value) VALUES (42, 42) IF NOT EXISTS");
assertTrue(rs.wasApplied());
// Then, make sure the flag reports correctly that we did not create a new row
rs = session().execute("INSERT INTO Java358(key, value) VALUES (42, 42) IF NOT EXISTS");
assertFalse(rs.wasApplied());
}
代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core
@Test(groups = "short")
public void singleUpdateTest() {
session().execute("TRUNCATE test");
session().execute("INSERT INTO test (k1, k2, v) VALUES (1, 1, 1)");
ResultSet rs = session().execute("UPDATE test SET v = 3 WHERE k1 = 1 AND k2 = 1 IF v = 2");
assertFalse(rs.wasApplied());
// Ensure that reading the status does not consume a row:
assertFalse(rs.isExhausted());
rs = session().execute("UPDATE test SET v = 3 WHERE k1 = 1 AND k2 = 1 IF v = 1");
assertTrue(rs.wasApplied());
assertFalse(rs.isExhausted());
// Non-conditional statement
rs = session().execute("UPDATE test SET v = 4 WHERE k1 = 1 AND k2 = 1");
assertTrue(rs.wasApplied());
}
代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core
/**
* Test for #JAVA-358 - Directly expose CAS_RESULT_COLUMN.
*
* <p>This test makes sure that the boolean flag {@code ResultSet.wasApplied()} is false when we
* try to delete a row which does not exist.
*
* @see ResultSet#wasApplied()
*/
@Test(groups = "short")
public void delete_if_not_exist_should_support_wasApplied_boolean() {
// First, make sure the test table and the row exist
session().execute("CREATE TABLE IF NOT EXISTS Java358 (key int primary key, value int)");
session().execute("INSERT INTO Java358(key, value) VALUES (42, 42)");
// Then, make sure the flag reports correctly that we did delete the row
ResultSet rs;
rs = session().execute("DELETE FROM Java358 WHERE KEY=42 IF EXISTS");
assertTrue(rs.wasApplied());
// Finally, make sure the flag reports correctly that we did did not delete an non-existing row
rs = session().execute("DELETE FROM Java358 WHERE KEY=42 IF EXISTS");
assertFalse(rs.wasApplied());
}
}
代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core
@Test(groups = "short")
public void multipageResultSetTest() {
session().execute("TRUNCATE test");
session().execute("INSERT INTO test (k1, k2, v) VALUES (1, 1, 1)");
session().execute("INSERT INTO test (k1, k2, v) VALUES (1, 2, 1)");
// This is really contrived, we just want to cover the code path in
// ArrayBackedResultSet#MultiPage.
// Currently CAS update results are never multipage, so it's hard to come up with a meaningful
// example.
ResultSet rs =
session().execute(new SimpleStatement("SELECT * FROM test WHERE k1 = 1").setFetchSize(1));
assertTrue(rs.wasApplied());
}
代码示例来源:origin: io.vertx/vertx-cassandra-client
@Override
public boolean wasApplied() {
return resultSet.wasApplied();
}
}
代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core
@Test(groups = "short")
public void batchUpdateTest() {
session().execute("TRUNCATE test");
session().execute("INSERT INTO test (k1, k2, v) VALUES (1, 1, 1)");
session().execute("INSERT INTO test (k1, k2, v) VALUES (1, 2, 1)");
PreparedStatement ps =
session().prepare("UPDATE test SET v = :new WHERE k1 = :k1 AND k2 = :k2 IF v = :old");
BatchStatement batch = new BatchStatement();
batch.add(
ps.bind().setInt("k1", 1).setInt("k2", 1).setInt("old", 2).setInt("new", 3)); // will fail
batch.add(ps.bind().setInt("k1", 1).setInt("k2", 2).setInt("old", 1).setInt("new", 3));
ResultSet rs = session().execute(batch);
assertFalse(rs.wasApplied());
}
代码示例来源:origin: org.springframework.data/spring-data-cassandra
@Override
public boolean execute(String cql) throws DataAccessException {
Assert.hasText(cql, "CQL must not be empty");
return queryForResultSet(cql).wasApplied();
}
代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core
assertThat(rs.wasApplied()).isTrue();
assertThat(rs.getColumnDefinitions())
.hasSize(1)
assertThat(rs.wasApplied()).isFalse();
assertThat(rs.getColumnDefinitions()).hasSize(4);
Row row = rs.one();
assertThat(rs.wasApplied()).isFalse();
assertThat(rs.getColumnDefinitions()).hasSize(5);
row = rs.one();
代码示例来源:origin: org.apache.apex/malhar-contrib
private void updatePerRowMetric(ResultSet result)
{
uniqueHostsWrittenToInCurrentWindow.add(result.getExecutionInfo().getQueriedHost());
updateConsistencyLevelMetrics(result.getExecutionInfo().getAchievedConsistencyLevel());
successfullWrites += 1;
if (!result.wasApplied()) {
ignoredRequestsDuetoIfExistsCheck += 1;
}
}
内容来源于网络,如有侵权,请联系作者删除!