условия автоматического присоединения к спящему режиму

StackOverflow https://stackoverflow.com/questions/934231

Вопрос

Класс персистентности спящего режима:@Entity public class a {

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

    @Basic
    private boolean DELETED;

}

Класс B также имеет свойство DELETED.Как мы можем автоматически обрабатывать свойство DELETED во время соединения, чтобы выбирать только не удаленные объекты.Возможно, с помощью некоторых аннотаций.Возможно?

Это было полезно?

Решение 2

Большое спасибо!это мое решение:

@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 «выберите a.DELETED from A a join a.bSet bSet» будет генерировать собственный SQL следующим образом:

выберите a0_.DELETED как col_0_0_ из A a0_ внутреннего соединения B bset1_ на a0_.id=bset1_.a_id и ( bset1_.DELETED=0 или bset1_.DELETED имеет значение null)

иentityManager.find(...) будет работать правильно :)

Другие советы

В соответствии с Документация по спящему режиму вам следует использовать ResultTransformer (ALIAS_TO_ENTITY_MAP).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top