2014-11-07 4 views
0

나는 SQL 데이터베이스의 일부 데이터를 저장하고 저장하고 있습니다. 객체 A에 대한 데이터를 한 번에 저장하고 객체 B를 다른 패스에 저장합니다. 객체 B에는 A의 _id가 저장되어 있습니다. B에 대한 참조와 함께 A를 저장하면 A를로드 할 때 동시에 B에있는 모든 정보를 얻을 수 있습니다.모르겠다면 모르핀을 참조하십시오.

그러나 거대한 리팩토링없이 객체 A를 생성 할 때 객체 A는 내 메모리에 저장되지 않습니다. 참조 객체가 조금 더 많기 때문에 어쨌든 morphia에게 객체를 B에 저장하기 위해 A를 모두 메모리에로드하지 않고 A를 참조해야한다고 말할 수있는 방법이 있습니까? 그렇지 않으면 A의 _id와 다른 모든 값을 기본값으로 설정하고 효율적으로 저장하여 '빈'개체를 만들면 원하는 것을 수행 할 수 있습니까?

답변

2

레벨 모피 아에서 작업하는 경우 A 객체 참조가 필요합니다. 즉, 전체 A. 예 : 일 필요는 없습니다 말했다 : 모든 모르핀이 필요

B b = new B(); 
// some work here 
b.setA(new A(idForA))); 
datastore.save(b); 

은 (는 A에 대한 매핑 정보로부터 얻는다) 컬렉션이며, 그 A.에 대한 _id 값 어떤 것 여기서 b이 저장 될 때 발생합니다. A에 대해 Key (간단하게 유지)를 만든 다음 해당 값을 사용하여 데이터베이스에 DBRef을 만듭니다. Morphia는 @Reference 회원의 다른 어떤 국가도 신경 쓰지 않습니다. 따라서 ID를 저장하여 저장하면 모든 설정을 완료해야합니다.