diff --git a/src/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java b/src/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java index 6a9fd435e..f9564ac42 100644 --- a/src/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java +++ b/src/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java @@ -489,11 +489,9 @@ public class SimpleJpaRepository implements JpaRepository, JpaSpec if (entityInformation.isNew(entity)) { em.persist(entity); return entity; - } else if (!em.contains(entity)) { + } else { return em.merge(entity); } - - return entity; } /* diff --git a/src/test/java/org/springframework/data/jpa/repository/support/SimpleJpaRepositoryUnitTests.java b/src/test/java/org/springframework/data/jpa/repository/support/SimpleJpaRepositoryUnitTests.java index 4043943a8..6294f15e7 100644 --- a/src/test/java/org/springframework/data/jpa/repository/support/SimpleJpaRepositoryUnitTests.java +++ b/src/test/java/org/springframework/data/jpa/repository/support/SimpleJpaRepositoryUnitTests.java @@ -145,8 +145,8 @@ public class SimpleJpaRepositoryUnitTests { verify(em).merge(detachedUser); } - @Test // DATAJPA-931 - public void mergeGetsNotCalledWhenAttached() { + @Test // DATAJPA-931, DATAJPA-1261 + public void mergeGetsCalledWhenAttached() { User attachedUser = new User(); @@ -154,6 +154,6 @@ public class SimpleJpaRepositoryUnitTests { repo.save(attachedUser); - verify(em, never()).merge(attachedUser); + verify(em).merge(attachedUser); } }