Java でのオブジェクトのフェッチに問題があります。Entity Bean クラスであるオブジェクト A があり、オブジェクト B (別の Entity Bean クラス) がフィールドとして含まれています。オブジェクト A は B なしで作成され、後でオブジェクト B が何らかのアクションで A にアタッチされました。
問題は、一部のユーザーがオブジェクト A のオブジェクト B を表示できないことです。オブジェクト B は null のように見えます。データベースではすべて問題なく、しばらくするとオブジェクト A が正常に見えます (B を含む)。これは一部のケースでのみ発生し、他のオブジェクトでは最初から適切に見えます。
アプリケーションを実行するために2つの仮想マシンを使用していると言いたいです(おそらく問題になる可能性があります)およびOracle Application Server。
何か助けはありますか?
ストヤン
コードは次のようになります:
エンティティ クラス A は次のように定義されます (B もエンティティ クラス)。
@Entity
@Table(name = "A")
public class A{
...
@ManyToOne
@JoinColumn(name="ID_B", referencedColumnName="ID")
private B b;
...
}
クラス A のオブジェクトは、次のようなアクションで作成されます。
public createA_action(){
A a = new A();
saveObject(a);
}
ここで、「saveObject」は、データベース内のオブジェクトを永続化またはマージするメソッドです。
後で、次のように他のメソッドが呼び出されます。
public addBtoA_action(){
A a = getA();
B b = getB();
a.setB(b);
saveObject(a);
}
getA() と getB() は既存のオブジェクトを取得します。