Abfragen von Sammlungen von Wert geben Sie in die Kriterien-API, die in Hibernate
Frage
In meiner Datenbank habe ich eine entity-Tabelle (nennen wir es mal Einheit).Jede Entität kann eine Reihe von entity-Typen und die Menge von entity-Typen ist statisch.Also, es gibt eine Verbindung Tabelle, die die Zeilen enthält, für die Entitäts-id und den Namen der Person eingeben.In meinem code, EntityType ist eine enum, und Entität ist ein Hibernate-Mapping-Klasse.
in der Entity code, der das mapping sieht wie folgt aus:
@CollectionOfElements
@JoinTable(
name = "ENTITY-ENTITY-TYPE",
joinColumns = @JoinColumn(name = "ENTITY-ID")
)
@Column(name="ENTITY-TYPE")
public Set<EntityType> getEntityTypes() {
return entityTypes;
}
Oh, habe ich erwähnt, ich bin mit Anmerkungen?
Nun, was ich möchte zu tun ist, erstellen Sie eine HQL-Abfrage oder Suche über Kriterien für alle Entity-Objekte einer bestimmten entity-Typ.
Diese Seite in der Hibernate-forum sagt, dass dies unmöglich ist, aber dann diese Seite ist 18 Monate alt.Kann mir jemand sagen ob diese Funktion wurde implementiert, in einer der neuesten Versionen von Hibernate oder geplant für den kommenden release?
Lösung
HQL:
select entity from Entity entity where :type = some elements(entity.types)
Ich denke, dass man auch es schreiben wie:
select entity from Entity entity where :type in(entity.types)
Andere Tipps
Ist Ihre Beziehung bidirektional, d.h., nicht EntityType
haben eine Entity
Eigentum?Wenn ja, können Sie wahrscheinlich so etwas tun entity.Name from EntityType where name = ?