使用 XPages Toolkit Domino 存储服务将对象树加载到 Java 个对象中

Using XPages Toolkit Domino Storage Service to load a tree of objects into Java Objects

我正在构建一个允许用户注册特定课程的特定会话的应用程序。

数据的结构像一棵树,即一门课程可以有很多会话,可以有很多注册。

我已经为每个对象构建了具有唯一 ID 的视图,包括父对象的 ID。

我现在要做的是设置我的 XPage,以便所有数据都加载到内存中,这样我就可以直接通过 java 对象访问所有数据,而不是直接绑定到意见(这是丑陋的)。

我正在考虑像这样构建对象:

public class ApplicationBean implements Serializable {

private Set<Course> courses;

public void addCourse(Course input){};

    public void initialize {
      - load all courses, sessionns, registrations from flat Notes Views
      - updates 
};
}

 public class Course implements Serializable {
 private Set<Session> sessions;

 public void addSession(Session input){}

 }

public class Session implements Serializable {

    private Course parent;
    private Set<Registrations> registrations;
    public Course getParent(){}
    public void addRegistration(Registration input) {}

}


public class Registration implements Serializable {

    private Session parent;
    public Session getParent(){}
}

例如:显示我已注册的所有课程的列表。我想要一个显示以下内容的列表:

registration session(from parent of registration) course (from parent of session)

行将被填充

registration.description   registration.session.title registration.session.course.title

我研究了 Christian Güdemann 的 XPages 工具包中的 Domino 存储服务 (DSS),它看起来很有前途;逻辑的所有数据库访问对象位都是自动创建的。我想使用它,但示例数据库只显示了一个简单的平面数据 - 联系人。

我正在考虑拥有某种 applicationBean,它在首次加载时将所有三个平面对象列表加载到内存中,然后在第二步中创建对象之间的链接。

最好的解决方案是什么?有什么建议吗?

您已经概述了解决方案的各个部分:

  • 将您的 Java class 设计为一个 bean
  • 具有可以在 EL 中绑定的属性

只要您的交互是单页应用程序,我就不会使用托管 bean。我会使用具有不同 load/save 事件的 bean 数据源。 当您使用多个页面并希望在页面之间保留内容时,托管 bean 会话范围很有意义。

您可以将托管 bean 用作缓存并仍然使用 bean(我认为它正式称为对象数据源)数据源。

告诉我们进展如何