From 80159fa3d752dedbdef33108b08723a5981b5ab1 Mon Sep 17 00:00:00 2001 From: Mic <misvy@vmware.com> Date: Tue, 7 May 2013 10:54:35 +0800 Subject: [PATCH] fixed bug in JPA implementation: "save" methods were implemented using "merge" instead of "persist" --- .../petclinic/repository/jpa/JpaOwnerRepositoryImpl.java | 2 +- .../petclinic/repository/jpa/JpaPetRepositoryImpl.java | 2 +- .../petclinic/repository/jpa/JpaVisitRepositoryImpl.java | 2 +- .../petclinic/service/AbstractClinicServiceTests.java | 5 +++++ 4 files changed, 8 insertions(+), 3 deletions(-) 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 dfa00ce..fd0f217 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,7 @@ public class JpaOwnerRepositoryImpl implements OwnerRepository { @Override public void save(Owner owner) { - this.em.merge(owner); + this.em.persist(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 ea185cc..4823aab 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,7 @@ public class JpaPetRepositoryImpl implements PetRepository { @Override public void save(Pet pet) { - this.em.merge(pet); + this.em.persist(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 58d3709..fccf795 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,7 @@ public class JpaVisitRepositoryImpl implements VisitRepository { @Override public void save(Visit visit) { - this.em.merge(visit); + this.em.persist(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 b29fb94..e3c5f0a 100644 --- a/src/test/java/org/springframework/samples/petclinic/service/AbstractClinicServiceTests.java +++ b/src/test/java/org/springframework/samples/petclinic/service/AbstractClinicServiceTests.java @@ -16,11 +16,13 @@ package org.springframework.samples.petclinic.service; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.util.Collection; import org.joda.time.DateTime; +import org.junit.Assert; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.samples.petclinic.model.Owner; @@ -88,6 +90,7 @@ public abstract class AbstractClinicServiceTests { owner.setTelephone("4444444444"); this.clinicService.saveOwner(owner); 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()); } @@ -142,6 +145,7 @@ public abstract class AbstractClinicServiceTests { this.clinicService.saveOwner(owner6); owner6 = this.clinicService.findOwnerById(6); assertEquals(found + 1, owner6.getPets().size()); + assertNotNull("Pet Id should have been generated", pet.getId()); } @Test @@ -183,6 +187,7 @@ public abstract class AbstractClinicServiceTests { this.clinicService.savePet(pet7); pet7 = this.clinicService.findPetById(7); assertEquals(found + 1, pet7.getVisits().size()); + assertNotNull("Visit Id should have been generated", visit.getId()); } -- GitLab