custom finder SQL 动态增强
要确保使用 Enterprise JavaBeans (EJB) V1.1 Home 接口上定义的定制 finder 的应用程序的数据完整性,WebSphere® Application Server V6.x 使用定制 finder 结构化查询语言 (SQL) 动态增强来维护正确的 SQL 锁定语义。
对于用 Update 属性和特定方法级别的隔离级别设置定义的那些定制 finder,WebSphere Application Server 对它们使用适用于定制 finder SQL 语句的 SQL 子句。仅当后端数据存储支持这些子句时,这些动态增强才适用。
当运行时尝试执行与 custom finder 相关联的容器管理的持久性 (CMP) 持久性操作时,此支持就会在运行时生效。为确保在 EJB V1.1 Home 接口(访问需要特殊 SQL 锁定子句的后端数据存储)上定义的定制 finder 可正确进行 SQL 动态增强,WebSphere Application Server 提供了新的 Java™ 虚拟机 (JVM) 和 Bean(模块)属性。倘若后端存储支持此 SQL 子句,这些属性使您能够表明哪些 custom finder 应该增强。 有关这些属性的更多信息,请参阅“custom finder SQL 动态增强属性”。
以下是使用此功能时要考虑的重要事项:
- 此支持仅适用于 EJB V1.1 CMP custom finder 方法
- 不支持选项 A CMP Bean 和继承关系中涉及的 CMP Bean
WebSphere Application Server for z/OS® V4.x 中使用此功能的应用程序可以继续工作,但您必须解决一些兼容性问题:
- WebSphere Application Server V5.x 及更高版本的缺省行为与 V4.x 产品相反,即缺省情况下,除非通过特定设置指定了增强,否则 5.x 及更高版本不增强定制 finder SQL 语句。如果 WebSphere Application Server for z/OS 安装依赖于安装的所有应用程序中的所有定制 finder 的自动动态增强,那么您必须将 com.ibm.websphere.ejbcontainer.customfinder.honorAccessIntent 指示符设置为所有。
- 如果应用程序包含一个 Bean,这个 Bean 将 com.ibm.websphere.persistence.bean.managed.custom.finder.access.intent 指示符设置为它的 env-var 设置,那么只要启用了 V5.x 产品及其更高版本的动态 SQL 增强功能,就可以继续使用该指示符。有关更多信息,请参阅“custom finder SQL 动态增强属性”主题。