diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/StatementFactory.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/StatementFactory.java index ecb40f1ea..5ba8fb84a 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/StatementFactory.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/StatementFactory.java @@ -367,9 +367,9 @@ public class StatementFactory { private static Assignment getAssignment(IncrOp incrOp) { - return incrOp.getValue().intValue() > 0 - ? QueryBuilder.incr(incrOp.getColumnName().toCql(), Math.abs(incrOp.getValue().intValue())) - : QueryBuilder.decr(incrOp.getColumnName().toCql(), Math.abs(incrOp.getValue().intValue())); + return incrOp.getValue().longValue() > 0 + ? QueryBuilder.incr(incrOp.getColumnName().toCql(), Math.abs(incrOp.getValue().longValue())) + : QueryBuilder.decr(incrOp.getColumnName().toCql(), Math.abs(incrOp.getValue().longValue())); } private static Assignment getAssignment(SetOp updateOp) { diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/StatementFactoryUnitTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/StatementFactoryUnitTests.java index fdef1d69c..ba0b1699b 100644 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/StatementFactoryUnitTests.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/StatementFactoryUnitTests.java @@ -241,6 +241,14 @@ public class StatementFactoryUnitTests { assertThat(update.toString()).isEqualTo("UPDATE person SET number=number+1;"); } + @Test // DATACASS-735 + public void shouldCreateIncrementLongUpdate() { + + Statement update = statementFactory.update(Query.empty(), Update.empty().increment("number", Long.MAX_VALUE), personEntity); + + assertThat(update.toString()).isEqualTo("UPDATE person SET number=number+" + Long.MAX_VALUE+";"); + } + @Test // DATACASS-343 public void shouldCreateDecrementUpdate() { @@ -249,6 +257,14 @@ public class StatementFactoryUnitTests { assertThat(update.toString()).isEqualTo("UPDATE person SET number=number-1;"); } + @Test // DATACASS-735 + public void shouldCreateDecrementLongUpdate() { + + Statement update = statementFactory.update(Query.empty(), Update.empty().decrement("number", Long.MAX_VALUE), personEntity); + + assertThat(update.toString()).isEqualTo("UPDATE person SET number=number-" + Long.MAX_VALUE+";"); + } + @Test // DATACASS-569 public void shouldCreateSetUpdateIfExists() {