2017-09-22 3 views
-1

Ich arbeite mit dem Frühjahr-Boot, Frühjahr Daten jpa, ich habe ein Szenario wie den Rekord bekommen und den Stand der Aufzeichnung zu aktualisieren.Frühling Daten jpa nicht den Datensatz aktualisieren

Project updateProject =null; 
    private void changeStatusOfProject(Integer projectId, String statusJobSchedule) { 
     logger.info("changeStatusOfProject "+STATUS + statusJobSchedule); 

     Project p =projectDao.findOne(pid); 

     updateProject = new Project(); 
     updateProject.setProjectId(p.getProjectId()); 
     updateProject.setPText(p.getPText()); 
     updateProject.setEcommDisplayFlag(p.getEcommDisplayFlag()); 
     updateProject.setUpdatedDate(new Date()); 
     updateProject.setUpdatedBy("Chandu"); 

     logger.info("p id : " +p.getpID()); 

     if (statusJobSchedule.equalsIgnoreCase("Completed")) { 
      updateProject.setActive("N"); 
     } else { 
      updateProject.setActive("Y"); 
     } 
     updateProject.setExecutionStatus(statusJobSchedule); 

     projectDao.save(updateProject); 

    } 

Ich bekomme auch keine Ausnahme.


Spur 2:

projectDao ist Implementierungsklasse von jparepositarty

private void changeStatusOfProject(Integer projectId, String statusJobSchedule) { 
     logger.info("changeStatusOfProject "+STATUS + statusJobSchedule); 

     Project project =projectDao.findOne(projectId); 



     if (statusJobSchedule.equalsIgnoreCase("Completed")) { 
      project.setActive("N"); 
     } else { 
      project.setActive("Y"); 
     } 
     question.setExecutionStatus(statusJobSchedule); 

     questionBankDao.save(project); 

    } 
+0

ich vertrauen projectDao ist eigentlich projectRepository im Frühjahr? Dann ist Ihr aktives JPA-Objekt p, nicht updateProject. Wahrscheinlich erhalten Sie einen Primärschlüssel-Constraint, der beim Versuch, ein neues Projektobjekt zu erstellen, ausgelöst wird und eine unkontrollierte Ausnahme auslöst – farrellmr

+0

"Ich bekomme auch keine Ausnahme", was bekommen Sie dann? Können Sie auch erklären, was 'updateProject' ist und warum es nicht innerhalb der Methode ist? Ist es ein Feld? Und was ist 'projectDao'? Ohne weitere Informationen kann diese Frage nicht beantwortet werden. – g00glen00b

+0

Was war Ihre genaue Frage? wie @ g00glen00b ohne weitere Informationen sagte, kann diese Frage nicht beantwortet werden – jai

Antwort

0

hatte ich ein ähnliches Problem eine Weile zurück, und für mich war es, weil es zwischengespeichert wurde.

Ich habe es behoben, indem ich @Cacheable(false) zu meiner Entitätsklasse hinzugefügt habe.

0

Sehe keine Störungen auf dem Code, sondern versuchen, auf diese Weise

private void changeStatusOfProject(Integer projectId, String statusJobSchedule) { 
    logger.info("changeStatusOfProject "+STATUS + statusJobSchedule); 
    Project p =projectDao.findOne(pid); 
    p.setUpdatedDate(new Date()); 
    p.setUpdatedBy("Chandu"); 
    logger.info("p id : " +p.getpID()); 
    if (statusJobSchedule.equalsIgnoreCase("Completed")) { 
     p.setActive("N"); 
    } else { 
     p.setActive("Y"); 
    } 
    p.setExecutionStatus(statusJobSchedule); 
    projectDao.save(p); 
} 
Verwandte Themen