1

私の目標は、プロジェクトに関する情報を 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
}

私の質問は次のとおりです。

  • ORM ツールからの遅延読み込みに似たものはありますか? 例: についての情報を取得したい場合project 1、サブプロジェクトからのすべての情報は必要ありません。これを達成する最良の方法は何ですか?
  • OCM を使用する場合、バイナリ データ (ファイル、ドキュメント、画像) をプロジェクトに添付する最良の方法は何ですか?

(残念ながら、Jackrabbit OCM のドキュメントはあまり詳しくありません)

4

1 に答える 1

4

遅延読み込みの場合はproxy=true、Bean または Collection アノテーションで指定することでこれを実現できます。

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 のドキュメントが更新されていないのは事実ですが、ソース配布の/org/apache/jackrabbit/ocm/config/jackrabbit-ocm-1.5.dtd下から有用な情報を見つけることができます。src/main/resources

HTH、

于 2012-07-15T02:45:48.427 に答える