如果是 EJB 2.x CMP Entity Bean 的屬性,對映編輯器的「內容」視圖會加入樂觀述語的內容。
如果您有樂觀存取目的設定(wsOptimisticUpdate 或 wsOptimisticRead),必須指定您希望加到述語中的屬性。如果屬性被設為 true,則該屬性會加到 Bean 的 UPDATE SQL 陳述式的 WHERE 述語中。依預設,對映編輯器會將每一個屬性設為 false,不過屬於初始類型的屬性除外,它們是設為 true。
在 5.0 版以前的 WebSphere® Studio Application Developer,不支援將 EJB 1.1 CMP Entity Bean 的屬性,加到樂觀述語中。不過,如果您是使用工作台來部署您以 5.0 之前的版本所開發的 EJB 應用程式,而且其中不含樂觀述語的屬性清單,則會使用所有可用的述語。不過 EJB 2.x CMP Entity Bean 就不一樣了。如果沒有選取任何屬性作為述語,就不會在過度限定的更新中加入任何屬性。
UPDATE SET NAME = ? WHERE ID = ? AND NAME IS NOT DISTINCT FROM ?這個新的 IS NOT DISTINCT FROM 語法,可以解除 JDBC 和 SQLJ 的 DB2 Universal Database for z/OS 和 OS/390 第 8 版和更新版中,對空值述語的限制。
其他所有的後端資料庫供應商都可以啟用該 Bean 的局部更新,來使用具有可空值述語直欄的 Bean(針對該局部作業選取 UPDATE_ONLY 值)。只有 JDBC 才支援局部更新。而 SQLJ 仍然保留對空值述語的限制。如需有關將局部作業作為持續性選項的詳細資訊,請參閱下列兩個主題:儲存器管理持續性的局部作業及新增 Entity Bean 2.x 的 Bean 層次存取目的。