WEB开发网
开发学院软件开发Java Go-ForIt 记事:eXtreme ragonSlayers 专题报告,... 阅读

Go-ForIt 记事:eXtreme ragonSlayers 专题报告,第 10 部分: 使用定制查找器方法检索不同的结果集

 2009-11-06 00:00:00 来源:WEB开发网   
核心提示: 查找器方法现在,让我们回到查找器方法,Go-ForIt 记事:eXtreme ragonSlayers 专题报告,第 10 部分: 使用定制查找器方法检索不同的结果集(5), findByPrimaryKey 是一个查找器方法,但您可能希望使用其它方法检索 bean,您已看到了 findByPr

查找器方法

现在,让我们回到查找器方法。 findByPrimaryKey 是一个查找器方法,但您可能希望使用其它方法检索 bean。因为我们的应用程序会检索特定于某个用户的差事,所以我们将定义查找器方法,该方法返回某个顾客输入的差事、PA 可能提交了投标的差事或者某种类型的全部差事。这些查找器方法中的每一个都将接受不同的参数,每一个都可以返回一个或多个差事。查找器方法返回 bean 的 Remote 接口或一个 Remote 接口的枚举。

所有的查找器方法都由容器来处理。容器怎样知道如何检索对应于 bean 中持久性字段的数据?我们来看一下下图。


图 2. 将 bean 映射到数据
Go-ForIt 记事:eXtreme ragonSlayers 专题报告,第 10 部分: 使用定制查找器方法检索不同的结果集

所有的 EJB 服务器都允许一个方法将数据源映射回容器,并最终映射到 EJB 组件。这条信息是容器工具创建的。因为 EJB 1.0 规范没规定部署描述符的格式,所以不同的容器处理部署描述符的方式也不同。在 WAS 中,通过给出数据存储(datastore)的名称和一个数据库 URL 定义一个数据存储。这会将数据库映射到服务器内使用的数据存储名称。当创建 EJB 组件时,您将 bean 与数据存储名称匹配起来。您还定义了一个模式映射,它将 EJB 组件中的持久性变量映射到表模式中的字段。这些映射是在部署描述符而不是 EJB 组件中进行维护,允许系统管理员不必对 EJB 组件进行更改就可更改数据库或表的名称。

现在我们有 EJB 组件对数据库中表的映射,还有变量对表中字段的映射。最后我们需要在查找器方法与数据库中的结果行之间建立映射。您已看到了 findByPrimaryKey 子句如何让容器使用 EJB 组件中的主键作为数据库中行的主键来检索数据库中的行。但容器是怎样知道如何根据 EJB 组件请求检索其它结果集的?在 WAS 中,这是通过在 Home 接口上定义名为 定制查找器的查找器方法实现的。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:Go ForIt 记事

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接