2014-07-16 59 views
0

복잡한 개체에 변경 사항을 저장하는 데 문제가 있습니다. 나는 많은 파기를했고, 내 인생에 대해 이것을 이해할 수 없다.DB4O 업데이트 깊이 문제

디버깅에서 개체를 저장하기 전에 올바른지 확인할 수 있지만 저장된 데이터를 검색 할 때 비어 있습니다 (통계가 늘어남). 플레이어의> ArrayList를 - - 통계 저장하지 않습니다 합계 개체의 ArrayList를의>ArrayList를 특히 여기

StatSheet 아래의 고장 플레이어 통계

StatSheets의

의 ArrayList의 ArrayList에있다 플레이어 의 ArrayList를 가지고있다 내가 한 일이라도 변화가 생긴 후에. 선수들의 arraylist는 나를 혼란스럽게하는 벌금을 업데이 트하는 것 같습니다. 업데이트 깊이를 2, 3, 4, 5 이상으로 변경하려고했습니다. 또한 cascadeOnUpdate를 true로 설정하려고 시도했습니다. 누군가 제발 도와 줄 수 있나요?

답변

0

내가 db4o는 쳐다 보면서 사용자 환경 또는 코드에 대한 세부 정보를 많이 제공하지 않았다 동안이었다하지만 어쩌면 당신은이 솔루션을 볼 수 있습니다 :

  • 당신이 웹 환경을 사용하십니까? 그래서 첫 번째 대답보고 :

    A few questions about working with db4o

  • 은 당신이 당신의 객체를 저장할 때 '커밋'사용하십니까? 프로세스를 저장하고 업데이트 한 후에는 변경 사항을 적용해야하기 때문입니다.

+0

웹 환경을 사용하고 있지 않습니다. 그러나 Android에서 개발 중입니다. 또한 커밋을 사용하지 않고 이전에 추가했지만 동일한 문제가 발생했습니다. :( –

0

개체의 배열 목록은 저장되지만 db4o는 내부 개체를 어떻게 처리해야할지 모릅니다. ArrayList는 'Activatable'이 아니므로 객체를 검색 할 수 없습니다. 오브젝트의 활성화를 가능하게하려면 저장 오브젝트의 모든 getter/setter에 activationPurpose를 넣어야합니다. 같은 :

com.db4o.collections.ActivatableArrayList

네이티브 자바 객체에이 작업을 수행 할 수 없기 때문에, db4o는 당신이 게터/세터에 activationPurpose 태그 된 일부 개체를 제공 따라서 저장소가되어야하는 모든 Java 콜렉션은 db4o와 동등한 것으로 대체되어야합니다 (com.db4o.collections. *).