21

@Whereで注釈が付けられた別のエンティティに関連付けられているエンティティがあります。

public class EntityA {

    @OneToMany
    @Where(...)
    private List<EntityB> entityBList;

}

最近避けられないことが起こったので、@Where句に準拠していないEntityBをロードする必要があります。@Whereアノテーションを削除することもできますが、頻繁に使用されるため、理想的には削除したくありません。EntityBのリストを手動でロードする以外に、別のクエリを使用して、私のオプションは何ですか?@Whereアノテーションを無視するようにHibernateに指示できますか?

4

5 に答える 5

11

多くの調査の結果、これは単純に不可能であることがわかりました。これらの関連付けが必要になるかどうかを事前に予測するのは難しいため、@Where を避けることを強くお勧めします。

于 2010-07-29T10:27:10.953 に答える
6

次のように、同じデータで別のプロパティをマップできます。

public class EntityA {

    @OneToMany
    @JoinColumn(name='theColumnName', insertable=false, updateable=false)
    private List<EntityB> entityBListReadOnly;

}

データの一貫性の問題を回避するために、更新可能な false および挿入可能な false として設定することが重要です。

于 2010-03-26T11:31:39.617 に答える