用于指出哪些企业 bean 在运行时应该启用定制 finder SQL 动态增强。
此属性在服务器级别上生效。任何 EJB 1.1 home 接口定义的、将更新作为访问意向的定制 finder(前缀命名为 find)都是根据其指定隔离级别的定制 finder SQL 动态增强的候选。如果后端数据存储器需要特殊 SQL 语义,那么应用它们。根据为应用程序中的 bean 所选择的隔离级别的不同,使用的特定 SQL 以及使用的后端数据库也随之不同。如果设置为所有,那么为所有定制 finder 启用定制 finder SQL 动态增强,这些定制 finder 在任何安装到容器的 bean 中定义。如果设置为 J2EENAME[:J2EENAME],其中 J2EENAME 是标准包或 bean 名称,那么仅当定制 finder 在安装到容器的 bean 中定义或由表示的 bean 名称代表时,才启用定制 finder SQL 动态增强。
数据类型 |
字符串 |
范围 |
有效值为所有或 J2EENAME[:J2EENAME] |
缺省值 |
增强行为不活动 |
注: 您的某些应用程序可能会使用经过手动编码过的定制 finder,且这些定制 finder 已包含 SQL 锁定子句或
SELECT 操作的
ORDER BY 和
DISTINCT 关键字。在这些实例中,如果运行时尝试 SQL 动态增强,那么存在这样一种可能性,就是将格式错误的 SQL 语句引入底层的后端数据存储器中。如果应用程序包含这些定制 finder,那么在为 JVM 属性
com.ibm.websphere.ejbcontainer.customfinder.honorAccessIntent 指定值时,您必须小心仔细。
值
所有导致为用在应用程序服务器中安装的所有 bean 中找到的访问意向为
更新定义的每个定制 finder 方法发生定制 finder SQL 动态增强,这样即可为定制 finder 的子集引入格式错误的 SQL。
要防止发生此情况,不要将服务器范围设置设置为所有。而使用 bean
方法级别属性 com.ibm.websphere.ejbcontainer.customfinder.honorAccessIntent.methodLevel 来表明在每个 bean 的基础上只有那些定制 finder 方法应该在运行时执行基于它们的定制 finder SQL 动态增强。