2012-05-10 21 views
0

コードリストが再起動後に最初にロードされる

クラスリスト{
@OneToMany(targetEntity = ShoppingItemStatus.class、 カスケード= CascadeType.ALLは、= FetchType.LAZYフェッチ)
プライベートリストアイテム= new ArrayList();

}

こんにちは、

私は、EclipseのリンクとGlassFishで働いていると私は非常に迷惑なエラーを持っています。

  1. 私は彼の新しいオブジェクトの「項目」は、任意の項目

が含まれていません

  • (新しいオブジェクトが含まれている)私は、オブジェクトのリストを読んでいるオブジェクト
  • を持続していますその後、サーバーを再起動します。

    すべての項目が正しく含まれています。ステップ2のため、私はこのエラーを実際に理解できません。ShoppingItemStatusとリストの間のテーブルのデータは存在します。

    私のエンティティのすべての設定&注釈を変更して、2日間探しています。

    私は迷っています ありがとうございました!

  • +0

    表示...お使いのコード... –

    答えて

    0

    私の推測は、関係の両面を更新していないときです。 OneToManyは決して追加しないので、再読み込みすると空になります。あなたは関係の両面を維持する必要があります。 EclipseLinkのは、共有キャッシュを有効にすると、デフォルトで http://en.wikibooks.org/wiki/Java_Persistence/Relationships#Object_corruption.2C_one_side_of_the_relationship_is_not_updated_after_updating_the_other_side

    を参照してください。あなたがキャッシュから来ているオブジェクトを再読み込みしても、あなたはあなたが永続していた状態になります。

    共有キャッシュがなくても、単一のエンティティマネージャ/トランザクションでこの問題が発生します。

    問題を回避するために共有キャッシュを常に無効にできますが、コードを修正する必要があります。

    +0

    ありがとうございます。単純なem.clear()は、すべての日の作業を殺しました。 http://wiki.eclipse.org/EclipseLink/FAQ/How_to_disable_the_shared_cache%3F 私はこれを試しましたが、まだこの問題はありません。自分のコードをfixxingすることについて話しました。これで正確にはどういう意味ですか?ありがとう! – user1385980

    関連する問題