Pergunta

Hibernate persistência de classe: @Entidade public class A {

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

    @Basic
    private boolean DELETED;

}

Classe B também tem uma propriedade DELETED. Como podemos processar DELETED propriedade durante juntar-se automaticamente, para selecionar apenas entidades não excluídos. Pode ser com a ajuda de algumas anotações. É possível?

Foi útil?

Solução 2

Muitos thx! que é a minha decisão:

@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;
    }
}

e HQL "SELECT a.DELETED de à juntar-se a.bSet bSet" será gerar SQL nativa como esta:

seleccionar a0_.DELETED como col_0_0_ de A a0_ junção interna B bset1_ em a0_.id = bset1_.a_id e (bset1_.DELETED = 0 ou bset1_.DELETED é nulo)

e EntityManager.find (...) estará trabalhando direita:)

Outras dicas

De acordo com a Hibernate documentação você deve usar ResultTransformer (ALIAS_TO_ENTITY_MAP).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top