entity bean 中主从表关系的处理方式

jx01_jz 2002-12-02 01:43:57
向大家请教一个设计时的问题:
我的系统有几个较多字段的表,每个表又有不少的主表对应(如定单基本表对应定单类型表);这样,系统中就有很多的小的主表。
一般来说设计的操作有:系统初始化或系统管理员修改系统时,能新增、修改或删除有关的主表(如定单类型);用户下定单时从主表取到值,然后给用户选择相应的值(当然也要填其他有关字段);用户在查看自己已经提交的定单时可以看到自己的主表对应的字段值(如定单类型)。
对应基本表,我准备建立相应的entitybean;而对于主表,我准备通过sessionbean来实现,或者系统管理时用各个对应entitybean而基本表读取主表时全部用一个sessionbean。但对于主表有的书上说用普通java对象来实现,我个人觉得在j2ee容器中用sessionbean能取得容器的服务,应该比较好。
但由于我没有具体的ejb设计经验,不知我的思路是不是比较合理,或者说到时系统运行起来效率比较好?希望大家给予指点,谢谢!
...全文
41 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
bcdavid 2002-12-03
  • 打赏
  • 举报
回复
关注一下
jackyz 2002-12-02
  • 打赏
  • 举报
回复
试抛砖,望引玉。

你这里提到的主表,我理解为类似于“字典数据”。如果我这里的理解有误,下面的话对你而言就是废话了,无需浪费时间分辨。

字典数据的特征为:读居多,写很少;也就是说基本上是 readonly 的。对它的处理常常有:“数据库字典表标准建模”、“数据库/内存cache”、“非数据库/简单对象”、“不建模/界面整合”等方式、各有特色。在不同的应用场景,应做不同的选择。

鉴于你的应用以 EJB 环境为基础,我的建议是:采用 CMP 方式建模为 readonly 的 entitybean 对象,通过 remote 的 sessionbean 以 local 方式调用。原因如下:

1. 性能
CMP 的 readonly entitybean 会被 container 加速处理,性能不会太慢。而 remote sessionbean -> local entitybean 的 sessionfacade 调用方式也提供了更好的性能。

2. 通用性
entitybean 方式,提供了从其他 entitybean 中进行引用的可能(也就是说,能支持 CMR 建模),比起不在数据库建模的实现方式,数据的一致性比较能够得到保证。

3. 维护性
在数据库建模这个对象,提供了直接予以修改的灵活性。在非数据库建模的处理方式中,维护时,有的需要修改代码重新编译,有的需要重新启动服务,有的需要修改界面逻辑。而 entitybean 方式,无需任何修改和重启。

缺点:性能,无可否认,毕竟它的实现基于 remote ejb 调用。但是通过良好的设计,比如 client 端的 cache 技术,是完全可以避免使它成为系统性能瓶颈。个人认为,比起它的优点,还是值得的。
jx01_jz 2002-12-02
  • 打赏
  • 举报
回复
还是没有人给予,再次希望得到大家的帮助!

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧