ADFエラーFailed to validate all rows in a transaction


Oracle ADFがビジネス・プライマリ・キーを挿入した時点でエラーを報告するFailed to validate all rows in a transaction
原因を分析しました.
EOの中で私はすでにEOの唯一性検査をして理論的にこの現象が現れるはずがない.
後で大文字と小文字の原因に気づいた.
ページで2種類の大文字を回転する方法1つはjs法で、1つはcontextで回転します
context法:
stypeで設定すれば
text-transform:uppercase;
ADFで属性を設定できます
contentStyle="text-transform:uppercase;"
でいいです(実際にはこのvalueは小文字です)
js法:
jsコード
function toUpper(event) {
   var txtField = event.getCurrentTarget();            
   txtField.setValue(txtField.getSubmittedValue().toUpperCase());
}
ドメインイベントの入力
<af:clientListener method="toUpper" type="valueChange"/>

インタフェースでは、たとえばビジネス・プライマリ・キーCodeにhaqを入力してcontextでUppercase()を呼び出します.
大文字HAQに変換してUIに表示してくれましたが、実際にはこのコードは小文字で、
一方、ManagebeanではString型の大文字変換機能を再呼び出してデータベースに格納します(データベースではこのフィールドに一意性チェックがあります)
競合によってエラーが発生します
インタフェースでShift入力haqを押すとそのままEOチェックに入ります
そこでJSでユーザインタフェースに入力haqをcontextではなくHAQに直接変換することを考える.context回転は意味がない.インタフェースで見た効果にすぎません
またJSでの大文字化コードはカーソルが離れてから変化するのでcontextStyleの大文字化に合わせる.