Frage

Sagen wir, ich habe einen Kunden - Customer one-to-many bidirektionale Beziehung mit dem Customer den Gesamtwert jeder Ordnung halten

.

Wenn ich eine Abfrage habe den Gesamtwert aller Aufträge für einen bestimmten Kunden zu finden:

select SUM(o.orderValue) from CustomerOrder o where o.customer = :customer

Spielt es eine Rolle, in der Entity-Klasse diese kommentierten ist? Warum würden Sie es in der einen oder anderen setzen?

War es hilfreich?

Lösung

  

Spielt es eine Rolle, in der Entity-Klasse diese kommentierten ist?

Aus technischer Sicht spielt es keine Rolle, wie Sie die name eines @NamedQuery verwenden wird es zu nennen.

  

Warum würden Sie ihn in der einen oder anderen?

Aber von einer „logischen“ Sicht der @NamedQuery setzen, wo ist „natürlich“ gehört wird auf jeden Fall die Wartung erleichtern. In Ihrem Beispiel würde ich die Abfrage in der CustomerOrder Einheit setzen, da die Abfrage ist über CustomerOrder zu finden, das ist nur, wo würde ich es zu finden erwarten, wenn ich es suchen habe.

Andere Tipps

Es spielt keine Rolle. Das allgemeine Prinzip ist es zu setzen, wo es logisch gehört. In Ihrem Fall - es ist besser in CustomerOrder würde

Setzen Sie sie in den XML-Mapping-Dateien, die in der persistence.xml erklärt werden sollte. Sehen Sie diese große Link: arjan -tijms.omnifaces.org/2010/09/where-to-put-named-queries-in-jpa

Viele Anfragen nicht ‚natürlich‘ gehört mit dem Unternehmen (und weitere haben Sie den Entity-Code zu ändern, wenn Sie sie dort setzen, jedes Mal, wenn Sie brauchen eine neue Abfrage).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top