使用 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(我认为它正式称为对象数据源)数据源。
告诉我们进展如何
我正在构建一个允许用户注册特定课程的特定会话的应用程序。
数据的结构像一棵树,即一门课程可以有很多会话,可以有很多注册。
我已经为每个对象构建了具有唯一 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(我认为它正式称为对象数据源)数据源。
告诉我们进展如何