diff --git a/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaOwnerRepositoryImpl.java b/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaOwnerRepositoryImpl.java index fd0f21763b2c2fd18745f5987ad0154ab9c4b003..c7398df5ba5f66aef52d4ced953a4396746346bd 100644 --- a/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaOwnerRepositoryImpl.java +++ b/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaOwnerRepositoryImpl.java @@ -70,7 +70,12 @@ public class JpaOwnerRepositoryImpl implements OwnerRepository { @Override public void save(Owner owner) { - this.em.persist(owner); + if (owner.getId() == null) { + this.em.persist(owner); + } + else { + this.em.merge(owner); + } } diff --git a/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaPetRepositoryImpl.java b/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaPetRepositoryImpl.java index 4823aabc1492e6e8f7aa0ee945ec594d94b86cb6..84d564da454754d008be973afdc2b5fcede04234 100644 --- a/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaPetRepositoryImpl.java +++ b/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaPetRepositoryImpl.java @@ -53,7 +53,12 @@ public class JpaPetRepositoryImpl implements PetRepository { @Override public void save(Pet pet) { - this.em.persist(pet); + if (pet.getId() == null) { + this.em.persist(pet); + } + else { + this.em.merge(pet); + } } } diff --git a/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaVisitRepositoryImpl.java b/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaVisitRepositoryImpl.java index fccf79533fd95edd7c44c521fd658a6402503208..3415def96e1d5c5c554800bb074d003254a7e579 100644 --- a/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaVisitRepositoryImpl.java +++ b/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaVisitRepositoryImpl.java @@ -45,7 +45,12 @@ public class JpaVisitRepositoryImpl implements VisitRepository { @Override public void save(Visit visit) { - this.em.persist(visit); + if (visit.getId() == null) { + this.em.persist(visit); + } + else { + this.em.merge(visit); + } } diff --git a/src/test/java/org/springframework/samples/petclinic/service/AbstractClinicServiceTests.java b/src/test/java/org/springframework/samples/petclinic/service/AbstractClinicServiceTests.java index e3c5f0a5739588c539d5b7e05fec4b3d906d2df5..02a21ac4df632b8314fe6317f104969478303198 100644 --- a/src/test/java/org/springframework/samples/petclinic/service/AbstractClinicServiceTests.java +++ b/src/test/java/org/springframework/samples/petclinic/service/AbstractClinicServiceTests.java @@ -89,8 +89,8 @@ public abstract class AbstractClinicServiceTests { owner.setCity("Wollongong"); owner.setTelephone("4444444444"); this.clinicService.saveOwner(owner); + Assert.assertNotEquals("Owner Id should have been generated", owner.getId().longValue(), 0); owners = this.clinicService.findOwnerByLastName("Schultz"); - assertNotNull("Owner Id should have been generated", owner.getId()); assertEquals("Verifying number of owners after inserting a new one.", found + 1, owners.size()); }