2010-02-18 4 views
0

[doPost()에서] 기존 레코드를 편집하는 코드가 있습니다. 오류는 없지만 저장되지는 ​​않습니다. 어떤 생각? 또는 단일 고유 필드를 기반으로 exsting 레코드를 업데이트하는 가장 좋은 방법은 무엇입니까?AppEngine (JAVA) : 레코드 업데이트

 if(sAction.compareToIgnoreCase("S")==0) 
    { 

     String email = req.getParameter("Email"); 

     PersistenceManager pm = PMF.get().getPersistenceManager();    
     Query query = pm.newQuery(SMSUser.class); 
     query.setFilter("Email == pEmail"); 
     query.declareParameters("String pEmail"); 
     List<SMSUser> users = (List<SMSUser>) query.execute(email); 
     if(!users.isEmpty()) 
     { 
      Iterator it = users.iterator(); 
      SMSUser u = (SMSUser) it.next(); 
      u.ContractPerson = req.getParameter("ContractPerson"); 
      u.Company = req.getParameter("Company"); 
      u.Address = req.getParameter("Address"); 
      u.Phone = req.getParameter("Phone"); 
      u.Aid = req.getParameter("Aid"); 
      u.Pin = req.getParameter("Pin"); 
      u.SenderId = req.getParameter("SenderId"); 
      u.Url = req.getParameter("Url"); 
      u.Operater = Integer.parseInt(req.getParameter("Operater")); 

      pm.makePersistent(u); 
     } 
     return; 
    } 
+0

추가 및 삭제 방법을 보여주는 많은 예제가 있지만 편집 레코드를 찾을 수 없습니다. – Manjoor

답변

0

getter/setter 함수를 추가했으며 작동 중입니다. 아직도 궁금해하는 이유 ??? 그러나 내 문제가 해결되었습니다.

1

으로 PersistenceManager가 the GAE doc clearly states 같이 지속성 관리자를 닫습니다 당신을 필요로 직접 사용하여 요소를 지속하기.

+0

이후 pm.makePersistent (u); 나는 추가했습니다 pm.close(); 하지만 여전히 작동하지 않습니다. – Manjoor

+0

u.Company = "a hardcoded blah company"와 같이 편집을 하드 코드 할 수 있습니까? 및 테스트할까요? (그냥 다른 논리 오류를 제거하기 위해) 난 내 애플 리케이션과 비슷한 문제를 해결하고 pm.close() 정말 그것을 해결 않았다 – aldrin

+0

나는 몇 시간 후에 그것을 시도했지만 작동하지 않습니다 – Manjoor

관련 문제