From 68fcf6ef8f9d926a7a2f43be2005b80fe32bff18 Mon Sep 17 00:00:00 2001 From: Jens Schauder Date: Mon, 5 Feb 2018 12:14:29 +0100 Subject: [PATCH] =?UTF-8?q?DATAJPA-1261=20-=20Revert=20optimizations=20mad?= =?UTF-8?q?e=20for=20existing=20entities=20in=20implementation=20of=20Crud?= =?UTF-8?q?Repository.save(=E2=80=A6).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts the functional change made by DATAJPA-931. This means merge will be called again, even if the entity for which save was called is already attached to the session. Tests stay in place to verify the new old behavior. Related ticket: DATAJPA-931. Original pull request: #249. --- .../data/jpa/repository/support/SimpleJpaRepository.java | 4 +--- .../repository/support/SimpleJpaRepositoryUnitTests.java | 6 +++--- 2 files changed, 4 insertions(+), 6 deletions(-) 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); } }