必须先为企业 bean 生成部署代码,才能在测试或生产服务器上成功地运行企业 bean。可以使用 EJB 部署工具来实现此目的。可以使用它提供的命令行界面,也可以从工作台中调用它。
通过使用命令行,可以整夜运行构建过程并自动调用部署工具来以批处理方式生成部署代码。
EJB 部署工具是使用 ejbdeploy 命令调用的,它接受包含一个或多个企业 bean 的输入 EJB JAR 或 EAR 文件。然后,它生成一个输出部署 JAR 或 EAR 文件(根据输入文件的类型),该文件包含格式为 .class 文件的部署代码。
EJB 部署工具同时支持自顶向下映射和中间会合映射、EJB 单个和多个表继承以及关系。它支持使用转换器和组合器:转换器将数据库表示转换为 Java™ 对象类型;组合器使用将单个复杂 bean 字段映射至多个数据库列。EJB 部署工具现在支持下列级别的访问意向(AccessIntent 是 WebSphere® 扩展):
EJB 部署工具生成所有访问意向所必需的所有代码。即,不必为此指定选项。
持久性管理器是一个运行时组件,负责提供对持久字段和关系的实现以及对底层持久存储器的所有数据访问权。隔离级别是确定访问数据期间如何将该数据与其它过程分开的数据完整性功能。
因为并发性(它是同时由多个过程共享使用资源)和访问类型的组合确定持久性管理器的隔离级别,所以访问类型是我们主要关心的。
因此,访问类型控制锁定类型和从数据库读取 Bean 数据时获取的锁定持续时间。悲观访问类型指示事务(数据装入)的持续时间保持锁定。乐观类型指示在从后端读取数据之后立即撤消锁定。读取类型指示运行时一定不能允许对数据更新;对读取类型下读取的数据执行操作的任何尝试都会导致异常。更新类型允许您更改数据。
映射至多个后端数据库也是受支持的(仅适用于 2.x EJB 项目)。模式及生成的 DDL 文件存储在 JAR 或者 EAR 文件的以下目录中:
EJBname\ejbModule\META-INF\backends\backend_id\schemaname.schxmi
EJBname\ejbModule\META-INF\backends\backend_id\tablename.ddl
如果存在多个后端并且未在 EJB 部署描述符中设置当前后端标识,则 EJB 部署工具将缺省为各个 META-INF\backends 目录中作为文件夹出现的第一个后端标识(如前面所述)。如果映射至单个后端数据库,则生成的 DDL 文件将出现在上面所述的目录中,也出现在 META-INF 文件夹中。