我的目标是在Jackrabbit中存储有关项目的信息。每个项目都可以包含多个子项目,其中附有与项目相关的文件/文档。
考虑以下结构:
-project 1
-project 1.1
-project 1.2
-project 1.2.1
-project 1.2.2
-project 2
我有一个代表每个项目的java类,如下所示:
public class Project {
@Field
private String name;
@Collection
private List<Project> subprojects;
// more properties + getter/setter
}
我的问题是:
project 1
的信息时,我不需要子项目的所有信息。什么是实现这一目标的最好方法?(不幸的是,Jackrabbit OCM文档并不是非常详细)
答案 0 :(得分:4)
对于延迟加载,您可以通过在Bean或Collection注释中指定proxy=true
来实现此目的。
二进制数据可以表示为jcr:data
的{{1}}属性,因此映射看起来像这样。
nt:resource
确实OCM的文档未更新,但您可以在源代码分发中的@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;
}
下找到/org/apache/jackrabbit/ocm/config/jackrabbit-ocm-1.5.dtd
下的有用信息。
HTH,