2011-08-31 8 views
0

문자열과 정수가있는 개체를 필드로 사용하며 문제없이 업데이트 할 수 있습니다. 난 그냥 고유 한 ID와 전화 setPersonalName ("마이크")와 올바른 필드를 찾으십시오; pm.makePersistent (Personal)로이 객체를 만듭니다. 그리고 끝났어!개체가 업데이트되지 않습니다

문제는 배열 필드에 있습니다. 의 개인이 과제를 가지고 있으며, 나는 이제 내가 ("보고서주세요", 3) Personal.setAssignment 호출 할 수 있도록 3 할당을 업데이트 할 가정 해 봅시다

@Persistent 
private String[] Assignments;  

이러한 저장한다고 가정 해 봅시다;

및 pm.makePersistent (개인); 이것은 어떻게 든 영구적으로 만들지 않으며 로그에는 오류가 없습니다 (단지 org.datanucleus.ObjectManagerImpl close : 데이터 저장소에 커밋되는 미해결 nonxx 업데이트)! 값이 객체에 있는지 여부를 확인했습니다. 값은 이미 개인용 오브젝트에 있습니다. 배열이 아닌 필드에는 문제가 없습니다. (처음부터이 객체를 추가 할 수있는 방법으로 만 업데이트가 작동하지 않습니다.) 어떤 생각에 대한

감사합니다, 여기

는 setAssignment 방법입니다 ... 하루 종일 연구했지만, 아무것도 찾을 수 없습니다 :

public void setAssignment(int AssignmentNo, String Assignment) { 
    this.Assignments[AssignmentNo-1] = Assignment; 
    System.out.println(this.Assignments[AssignmentNo-1] + "  " + AssignmentNo + "  " + this.id); 
} 
+0

대신 "전체"배열을 변경해야합니다.);'- 배열은 0부터 시작하므로'Personal.setAssignment (2, "보고서를 제공하십시오"); – Thomas

+0

예 setAssignment() 함수에서이를 처리하고 있습니다. 1을 빼고 배열의 색인으로 사용합니다. – Genom

답변

0

좋아 해결책을 찾았습니다. 이제 배열에 관한 것입니다. 어떻게 든 각 업데이트 작업은 간단한 setAssignments (String [] Assignments)를 통해 이루어져야합니다.이 배열에서는 하나의 요소 대신 전체 배열을 업데이트합니다. 어딘가에 jdo가 데이터 저장소의 필드를 변경하기 위해 이러한 메서드를 사용하고있는 것으로 나타났습니다. 배열의 요소를 변경하려면 "전체"배열을 this.Assignments[i] = newAssignment; 대신

관련 문제