auto hibernação condições de junção
-
06-09-2019 - |
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?
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 EntityManager.find (...) estará trabalhando direita:)
Outras dicas
De acordo com a Hibernate documentação você deve usar ResultTransformer (ALIAS_TO_ENTITY_MAP).