Hibernate auto Joinbedingungen
-
06-09-2019 - |
Frage
Ausdauer Klasse Hibernate: @Entität public class A {
@OneToMany(mappedBy = "a")
private Set<B> bSet = new HashSet<B>();
@Basic
private boolean DELETED;
}
Klasse B haben auch ein gelöschtes Objekt. Wie können wir GESTRICHEN Eigenschaft verarbeiten während automatisch beitreten, für ausgewählte nur nicht gelöscht Einheiten. Kann mit Hilfe von einigen Anmerkungen sein. Es ist möglich?
Lösung 2
Viele thx! das ist meine Entschlossenheit:
@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;
}
}
und HQL "wählt a.DELETED von A einem a.bSet bSet beitreten" wird nativen SQL wie diese werden generiert:
wählen a0_.DELETED als col_0_0_ von A A0_ Exklusionsverknüpfung B bset1_ auf a0_.id = bset1_.a_id und (bset1_.DELETED = 0 oder bset1_.DELETED ist null)
und EntityManager.find (...) arbeiten wird rechts:)
Andere Tipps
Nach Hibernate sollten Sie ResultTransformer (ALIAS_TO_ENTITY_MAP) verwenden.