2009-06-01 12 views
0

classe de persistance Hibernate: @Entity public class A {auto veille prolongée des conditions de jointure

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

    @Basic 
    private boolean DELETED; 

} 

classe B ont également une propriété deleted. Comment pouvons-nous traiter la propriété DELETED lors de la jointure automatiquement, pour sélectionner uniquement les entités non supprimées. Peut être avec l'aide de quelques annotations. C'est possible?

Répondre

1

Beaucoup de thx! qui est ma détermination:

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

et HQL "select a.DELETED de A une jointure a.bSet bSet" sera générer du SQL natif comme ceci:

sélectionnez a0_.DELETED comme col_0_0_ de A a0_ jointure interne B bset1_ sur a0_.id = bset1_.a_id et (bset1_.DELETED = 0 ou bset1_.DELETED est null)

et entityManager.find (...) vont travailler à droite :)

Questions connexes