나는 db4o 인스턴스를 조정하여 어떤 일이 일어나는지 알아 내려고 노력하고 있지만 이것은 정말로 나를 미치게 만듭니다. 그것은 단순히 나에게 의미가 없습니다.db4o : 심각한 문제와 incoherences
기본적으로 두 개의 객체를 만들고 두 번째 객체의 ArrayList에 첫 번째 객체를 저장합니다. 그런 다음 첫 번째 객체를 모두 제거하여 전체 데이터베이스를 만들고 처음에 저장 한 목록에서 제거하려고합니다.
다음은 현재 실행중인 작업의 기본 목록입니다. 이때
User user = new User("user");
Device device = new Device("device");
objectContainer.ext().store(user,5); // object storing depth
objectContainer.commit();
objectContainer.delete(device);
//objectContainer.close();
//objectContainer = new ...
I 닫고 난 (보통 피해야 정상 주행 애플리케이션으로) 용기를 가까이하지 않는 경우 동시에 I가 deviceList 널 객체를 포함하는 사용자 objectContainer을 재개하는 경우는 디바이스 오브젝트는 여전히 전체 데이터베이스에있는 것은 아니지만 사용자 개체 내부에 있어야합니다.
null 개체가없는 목록과 데이터베이스에서 개체를 제거하기 만하면됩니다. 이것이 가능한가?? 많은 구성 (weakReferences, activations, constraints, ...)을 많이 시도했지만 성공하지 못했습니다.
은 분명히이 두 데이터베이스에서이 예제를 보여 제거되지 않습니다; – giulio
개체는 실제로 캐시의 다른 개체에서 액세스 할 수없는 경우에만 제거됩니다. 따라서 객체를 제거하는 데 필요한 모든 지점에서 객체를 제거해야합니다. – Galigator
이제 관계가 수동으로 유지되도록 DBManager를 다시 만들었습니다. 나는 캐시 때문에 그것을 피할 수있는 가능성이 없다고 생각합니다. 객체를 java 힙에 보관하고 다시 시작하자마자 제거 되었기 때문에 db를 직접 읽으려는 시도조차 불가능했습니다. – giulio