元素三:Association。
Association主要用来定义Entity Object元素之间的关系。笔者再以数据库打个比方。在关系型数据库中,有外键约束条件,其主要用来建立两个表之间的关连性。在ADF业务组件中,Association起到的作用跟外键相似,就是用来创建两个Entity Object之间的相关性。
如在数据库中有两张部门与员工的表格,他们之间主要通过部门ID这个外键进行关联。在Jdeveloper开发环境中,利用Entity Object元素将这两张表对应到应用程序中。但是在没有建立Association之前,应用程序认为这两个元素之间是没有任何关系的。此时开发人员就需要为他们之间建立一种相关性。在这个时候就需要使用Association元素。具体来说,可以按如下步骤操作。第一步是先建立部门信息的Entity Object元素,第二步是建立员工信息的View Object元素,第三步就是建立Association元素,以创建这个两个元素之间的关联性。
在使用在这个元素的时候需要注意,其跟数据库中的关键字一样。在两个Entity Object元素中必须要各自选择一个字段作为关联。这两个字段必须有相同的数据类型以及长度等等。否则的话,就无法正确建立相互之间的关联性。
元素四:View Link。
Association元素主要用来建立两个Entity Object 元素之间的关联性(就好像是数据库中的外键约束)。那View Object之间的关联性由谁来完成呢?这就好象是在数据库中再创建一个视图,将两个视图连接起来。此时就需要用到View Link元素。在ADF业务组件中,View Link元素定义了两个View Object之间的相关性。
在实际开发过程中,如果需要用到主从表的界面,那么这个View Link属性就会非常有用。如在一个销售订单管理界面中,往往就需要用到主从界面。主界面是订单头的信息,而从界面就是订单明细。要实现这个功能的话,以Jdeveloper为例,如要通过如下几个步骤。
第一步是先建立一个View Object,取名为订单头。第二步是再建立一个View Object,取名为订单明细。第三步是通过View Link元素将他们关联起来。然后就可以通过相当轻松的建立具有主从关系的客户端界面。
从以上分析中可以看出,View Object与Entity Object是两个基本元素,就好像是数据库中的表与视图(他们之间有先后的关系)。而Association与View Link元素则主要用来建立他们之间的关联。在实际工作中,用的比较多的是View Link。即不会直接对Entity Object进行操作。这主要是因为对Entity Object操作会有很多的限制条件。故平常程序开发人员都是先建立Entity Object元素,然后再根据这个元素来创建View Objec。最后在这个层面上建立他们之间的关联。实践证明这是一个明智的处理原则。
最后顺便说一句,无论是以上那种元素,最后都需要通过“数据模型”来对其进行整合,才能够在应用程序中使用。数据模型就好像是一个打包的工具,将他们整合起来,以便于后续的引用与维护。而且数据模型中还提供了一种很好的测试工具,用来判断先前建立的各种元素是否正确,是否能够正确的从数据库中读取相关的数据。这一点非常重要,因为与数据库之间建立正确的对应关系,是一个成功的应用程序的基础。毕竟应用程序的数据都来自数据库,最后也需要将结果保存到数据库当中。