【发布时间】:2015-05-05 09:56:48
【问题描述】:
我正在构建一个应用程序,允许用户注册特定课程的特定会话。
数据的结构像一棵树,即一门课程可以有很多课程,也可以有很多注册。
我已经为每个对象建立了具有唯一 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,它在第一次加载时会将所有三个平面对象列表加载到内存中,然后在第二步中创建对象之间的链接。
这里最好的解决方案是什么?有什么建议吗?
【问题讨论】:
-
你为什么要把它们放在内存中,真的吗?您可以(并且应该)使用应用程序 bean 来制作更具可读性的代码,但这并不意味着您需要在内存中使用它们。像 WeakHashMap 这样的东西更好,IMO
标签: xpages