2012-09-09 9 views
0

수정이 불가능한 db4o에 문제가 있습니다. 나는 2 개의 클래스가 있습니다.클래스 내의 목록이 데이터베이스에서 업데이트되지 않습니다.

public class Profile { 
    private String Name; 
    private List<Action> Actions; 

    public String getName() { 
     return Name; 
    } 

    public void setName(String Name) { 
     this.Name = Name; 
    } 

    public List<Action> getActions() { 
     if (Actions == null) 
      Actions = new ArrayList<Action>(); 
     return Actions; 
    } 
} 

및 다른 클래스.

처음에는 db4o에 프로필과 작업 목록을 저장하면 문제가 없습니다. (작업 목록에서 항목을 추가하거나 제거하면) 데이터베이스 (db4o)에 반영되지 않습니다.

데이터를 저장하는 작업은 db4o.store (프로필)입니다. 아마도 db4o.store (Profile.Actions)와 같은 목록을 저장해야하는지 잘 모릅니다.

어떤 도움을 주시면 감사하겠습니다.

감사합니다.

답변

1

업데이트 깊이가 제대로 설정되지 않은 것 같습니다. Profile 클래스의 내부 목록을 업데이트하려면 더 높은 업데이트 깊이로 구성을 설정해야합니다. db4o 참조에서 this articlethis article을 참조하십시오.

List의 경우 업데이트 깊이가 2 이상인 것이 좋습니다.

EmbeddedConfiguration configuration = Db4oEmbedded.newConfiguration(); 
configuration.common().objectClass(Profile.class).updateDepth(2); 

2의 업데이트 깊이는 (내가 믿는)을 Action 자체를 포함하여 아래 Action 객체에 대한 모든 방법을 업데이트 할 것입니다 당신이 목록에 이미 Action을 변경하는 경우, 그래서 너무 업데이트됩니다. 업데이트 깊이를 너무 높게 설정하면 성능 문제가 발생할 수 있으므로주의하십시오.

+0

내가 전에 해봤 던지 잘 모르겠지만 ... 지금은 다시 시도하고 매력처럼 일했다 ... – Rothariger

+0

@Rothariger 그냥 비트가 올바른 방법으로 두 번째 시간을 대칭 이동 행복해 :) – Brian