Ich versuche eine Hibernate
Abfrage zu schreiben, um eine Entität für eine bestimmte ID abzurufen. Diese Einheit hat eine Sammlung von einem anderen Unternehmen, aber ich möchte nur nicht gelöschten Entitäten abzurufen, die Sammlung zu füllen:Warum wird dieser Link beitreten Abruf nicht einen Eintrag abrufen?
Top-Level-Einheit:
@Entity
@Table(name="rss_feed_definition")
public class RSSFeedDefinition extends BaseEntity {
[...]
@OneToMany(mappedBy="rssFeedDefinitionId")
private Collection<RSSFeedProperty> rssFeedProperties;
[...]
und die HQL:
em.createQuery("from RSSFeedDefinition definition left join fetch definition.rssFeedProperties property where property.deleted = false and definition.id = :id");
Warum gibt es die RSSFeedDefinition nicht zurück, obwohl ich mich der Eigenschaft anschließe (die ein gelöschtes Flag von true hat)?
Weil Ihre 'where' -Klausel auf die verbundene Tabelle filtert. Sie müssen diese Bedingung in die linke Verknüpfung aufnehmen. –
Entschuldigung, ich kann den Fehler nicht richtig sehen, könnten Sie ein Beispiel geben? – crm