2017-09-22 8 views
-1

私はスプリングブート、スプリングデータjpaで作業しています。レコードを取得し、レコードの状態を更新するようなシナリオがあります。スプリングデータjpaレコードを更新しない

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); 

    } 

例外はありません。


トレイル2:

projectDaoは、私はしばらく前に同様の問題を持っていたし、それがキャッシュされていたので、私にとってはそれがあった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

にしようとしないだろうか?次に、アクティブなJPAオブジェクトはupdateProjectではなくpです。新しいプロジェクトオブジェクトを作成しようとしているときにプライマリキーの制約が失われている可能性があります。 – farrellmr

+0

「例外が発生していません」というメッセージが表示されます。また、 'updateProject'が何であるのか、それがなぜメソッド内にないのか説明できますか?それはフィールドですか?そして 'projectDao'とは何ですか?これ以上の情報がなければ、この質問に答えることはできません。 – g00glen00b

+0

あなたの正確な質問は何ですか? @ g00glen00bがもっと情報なしで言ったように、この質問に答えることはできません – jai

答えて

0

の実装クラスです。

エンティティクラスに@Cacheable(false)を追加して修正しました。

0

は、コード上の任意のエラーを見て、しかし、私はprojectDaoがprojectRepositoryは春に実際にある信頼このよう

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); 
} 
関連する問題