オブジェクト リスト内のオブジェクトから 1 つの文字列値を取得しています。
transitionName = transitionList.get(m).getTransitionName().toString();
そして、EJB クエリによって取得されたオブジェクトからの別の文字列値。
changeItem = changeItemFacade.getChangeItem(changeGroupList.get(1));
char tempNewString[] = changeItem.getNewstring();
newString=new String(tempNewString);
この Char[] と String の比較は、changeItem を含む Oracle テーブルが列 NewString を CLOB として定義しているためです。そして ejb エンティティは、変数 'NewString' の型を Char[] array として定義します。したがって、比較を行う前に文字列に変換する必要があります。
問題は、この if ステートメントが常に false を返し、実行されないことです。
if(transitionName.equalsIgnoreCase(newString)){}
値 (Logger.Debug) をログに記録しようとすると、サーバー インスタンス ログに 2 つの (等しい) 文字列値が完全に表示されます。
char[] 配列を変換する方法に何か問題がありますか?
エンティティ クラス変数の型を String に変更しようとしましたが (もちろん getter メソッドと setter メソッドも)、どちらも機能しません。