그래서이 문제는 약 3 주 동안 지속되었습니다. 내가 이것을 읽었습니다 : http://code.google.com/appengine/docs/java/datastore/jdo/relationships.html 그리고 그것은 밖으로 작동하지 않는 것. 기본적으로 나는 풀 (pool)이라는 영구 객체를 가지고 있으며,이 풀에 플레이어를 추가해야합니다. 플레이어는 또한 영구 객체입니다. 나는 풀과 플레이어 사이에 무적의 관계가 있습니다. 풀에 플레이어 ID 세트가 있습니다 (기본 키 ids ...)google-appengine의 컬렉션에 추가
그래서 내가 시도한 것들 : 1) 기본 키로 Long을 사용했습니다. 둘 다, 이것은 작동하지 않았다. 2) appengine의 Key를 기본 키로 사용하려고했으나 클라이언트 측에서 Key 구현을 사용할 수 없기 때문에이 방법이 작동하지 않았습니다. 내가 발견 한 해결 방법 중 어느 것도 작동하지 않으며 데이터 전송 객체는 지저분하고 지저분하고 오류가 발생하기 쉽고 모든 종류의 문제가 있습니다.
@Extension(vendorName="datanucleus", key="gae.encoded-pk", value="true")
private String id;
이 같은 ID와 같은 문자열을 사용하여 시도 3) ... 그 중 하나가 작동하지 않았다. 문자열을 세트에 추가하려고하면 ...
public void addPlayers(Pool pool, List<String> players) {
PersistenceManager pm = getPersistenceManagerFactory().getPersistenceManager();
try {
pm.currentTransaction().begin();
Pool oldPool = pm.getObjectById(Pool.class, pool.getID());
for(String id : players) {
oldPool.addPlayer(id);
System.out.println("Added id:" + id);
}
pm.currentTransaction().commit();
} catch (Exception e) {
pm.currentTransaction().rollback();
e.printStackTrace();
} finally {
pm.close();
}
}
자동으로 실패합니다. 마찬가지로 ... 그것은 단지 그들을 유지하지 않습니다.
어떤 제안이 좋을 것입니다. 이것은 학교 프로젝트를위한 것이므로 불행히도 나는 JDO를 사용하여 GWT에서 그것을해야만한다. 내 교수와 조교는 GWT에 익숙하지 않기 때문에 나를 도울 수 없습니다 ... 재미 있습니다 ... 그래서 이것이 내 마지막 수단입니다. :)
고마워요!
코드가 GWT와 어떤 관련이 있습니까? –
Google 응용 프로그램 엔진을 사용하여 작성 되었기 때문에 ... 아마도 누락 된 것이 있습니까? 그것은 일식에있는 GWT 프로젝트입니다 ... – Chris
로그에서 디버그 레벨로 보겠습니다. – DataNucleus