2012-07-13 2 views
1

내 목표는 Jackrabbit 내의 프로젝트에 대한 정보를 저장하는 것입니다. 각 프로젝트는 프로젝트 관련 파일/문서가 첨부 된 여러 하위 프로젝트로 구성 될 수 있습니다. JCR : Jackrabbit OCM - 이진 데이터 및 지연로드

public class Project { 

    @Field 
    private String name; 

    @Collection 
    private List<Project> subprojects; 

    // more properties + getter/setter 
} 

내 질문

은 다음과 같습니다 : 비슷한 아무것도

  • 거기에 내가 다음과 같습니다 각 프로젝트를 나타내는 자바 클래스가

    -project 1 
    -project 1.1 
    -project 1.2 
        -project 1.2.1 
        -project 1.2.2 
    -project 2 
    

    :

    는 다음과 같은 구조를 고려 ORM 도구에서 게으른로드하는 방법? 예 : project 1에 대한 정보를 얻으려는 경우 하위 프로젝트의 모든 정보가 필요하지 않습니다. 무엇이 이것을 달성하는 가장 좋은 방법은 무엇입니까?

  • OCM을 사용할 때 이진 데이터 (파일, 문서, 이미지)를 프로젝트에 첨부하는 가장 좋은 방법은 무엇입니까?

게으른 로딩 들어

답변

4

(불행하게도 잭 래빗 OCM 문서가 정말 상세하지 않습니다), 당신은 콩 또는 컬렉션 주석에 proxy=true을 지정하여이 작업을 수행 할 수 있습니다.

이진 데이터는 jcr:data 속성으로 표시 할 수 있습니다. nt:resource이므로 매핑이 이와 유사합니다.

@Node(jcrType = "nt:resource") 
public class ResourceModel extends MimeTypeModel { 

    @Field(path = true) 
    String path = null; 

    @Field(jcrName = "jcr:data") 
    java.io.InputStream jcr_data = null; 
} 

그것은 OCM의 문서가 업데이트되지 않은 사실이지만, 당신은 소스 배포판에 src/main/resources에서 /org/apache/jackrabbit/ocm/config/jackrabbit-ocm-1.5.dtd에서 유용한 정보를 찾을 수 있습니다.

HTH,

+0

감사합니다. – micha