質問

永続クラスを休止:     @エンティティ     パブリッククラスA {

    @OneToMany(mappedBy = "a")
    private Set<B> bSet = new HashSet<B>();

    @Basic
    private boolean DELETED;

}

クラスBも削除性質を持っています。選択だけで削除されていないエンティティのために、自動的に参加する時にどのように我々は、削除プロパティを処理することができます。 いくつかのアノテーションの助けを借りてかもしれません。それは可能ですか?

役に立ちましたか?

解決 2

多くのTHX! それは私の決意です。

@Entity
public class A extends DeletableEntity{

    @OneToMany(mappedBy = "a")
    @Where(clause = "DELETED=0 or DELETED is null")
    private Set<B> bSet = new HashSet<B>();

    public Set<B> getBSet() {
        return bSet;
    }

    public void setBSet(Set<B> bSet) {
        this.bSet = bSet;
    }
}

とHQLこのようなネイティブSQLを生成します "に参加a.bSet BSETからa.DELETEDを選択して" ます:

a0_内側からcol_0_0_としてa0_.DELETEDを選択しa0_.id = bset1_.a_idのと(bset1_.DELETED = 0またはbset1_.DELETEDがnull)

にBのbset1_に参加します

とentityManager.find(...)が正しく動作されます。)

他のヒント

scroll top