diff --git a/src/main/java/com/avaje/ebeaninternal/server/core/PersistRequestBean.java b/src/main/java/com/avaje/ebeaninternal/server/core/PersistRequestBean.java index b0a5b54e3..ec1d90757 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/core/PersistRequestBean.java +++ b/src/main/java/com/avaje/ebeaninternal/server/core/PersistRequestBean.java @@ -528,7 +528,7 @@ public final class PersistRequestBean extends PersistRequest implements BeanP * Check for optimistic concurrency exception. */ public final void checkRowCount(int rowCount) { - if (rowCount != 1) { + if (ConcurrencyMode.VERSION == concurrencyMode && rowCount != 1) { String m = Message.msg("persist.conc2", "" + rowCount); throw new OptimisticLockException(m, null, bean); } diff --git a/src/test/java/com/avaje/tests/delete/TestDeleteWithoutOptimisticLocking.java b/src/test/java/com/avaje/tests/delete/TestDeleteWithoutOptimisticLocking.java new file mode 100644 index 000000000..0f5037c73 --- /dev/null +++ b/src/test/java/com/avaje/tests/delete/TestDeleteWithoutOptimisticLocking.java @@ -0,0 +1,20 @@ +package com.avaje.tests.delete; + +import com.avaje.ebean.BaseTestCase; +import com.avaje.ebean.Ebean; +import com.avaje.tests.model.basic.Contact; +import org.junit.Test; + +public class TestDeleteWithoutOptimisticLocking extends BaseTestCase { + + @Test + public void test() { + + // delete by by without version loaded ... should not throw OptimisticLockException + Contact ref = Ebean.getReference(Contact.class, 999999); + Ebean.delete(ref); + + Ebean.delete(Contact.class, 999999); + } + +}