Guten Tag,Hibernate Annotation Wo nur für 1 zu viele Beziehung gelten?
Ich habe einen Anruf Entity-Datei Agroup.java
, und ich verknüpfen Anruf an einen anderen Tisch Bservice.java
, die 1 bis Beziehung ist. So codieren ich es wie folgt:
@OneToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE }, mappedBy = "Agroup")
@Where(clause = "deleted = 0")
public Set< Bservice> getBServices() {
return BServices;
}
Und in der Hibernate-Abfrage, fand ich, dass es in der deleted = 0
Zustand hinzufügen.
left outer join Bservice b on a.groupId = b.groupId AND (b.deleted = 0)"
Das funktioniert gut.
Allerdings habe ich einen anderen Ansatz, der auf 1-Beziehung Viele ist, die Bservice.java Link zu Cservice.java ist, dass ich es wie folgt Code:
@ManyToOne()
@JoinColumn(name = "serviceId", nullable = false)
@Where(clause = "deleted = 0")
public Cservice getCService() {
return CService;
}
Dieses nur die 2 Tisch sitzen, aber nicht in der WHERE-Bedingung hinzugefügt.
left outer join Cservice c on b.serviceId = c.serviceId
Ist es Hibernate Annotation Wo gilt nur für 1 zu viele Beziehung?
Bitte beraten.
Danke. Gute Kenntnisse teilen @Bruno Franco. Ich habe gerade mein sql überprüft, das SQL, das nicht mit der "Wo" -Klausel erzeugt wurde, outisde meine linke äußere Verbindung Klausel. Die "Where" Funktion ist einfach weg. Hast du eine Ahnung davon? Ist es Ursache, indem ich 'mappedBy' im ersten Fall und' JoinColumn' zweiten Fall verwende? –