Frage

habe ich eine Eigenschaft eines Business-Objekt, das berechnet wird. Die Berechnung beinhaltet einen Teil der in Benutzers Details protokolliert und können daher nicht als eine einfache SQL-Abfrage dargestellt werden.

Ich habe Probleme mit dem Feld in der Hibernate Mapping XML-Datei darstellen, weil Hibernate versuchen weiter und das Feld aus der Datenbank abgerufen werden, obwohl es keine Spalte mit diesem Namen ist.

War es hilfreich?

Lösung

  

Ich habe Probleme mit dem Feld in der Hibernate Mapping XML-Datei darstellen, weil Hibernate versuchen weiter und das Feld aus der Datenbank abgerufen werden, obwohl es keine Spalte mit diesem Namen ist.

Ich bin fehlt wahrscheinlich etwas offensichtlich, aber ... warum Sie dieses Feld zuordnen dann? Aber nur für den Fall, könnte dies ein guten Anwendungsfall für ein sein <formula> Attribut.


  

Das Feld ist in der Java-Klasse, und wenn ich eine Abfrage-Code kann ich die benutzerdefinierte SQL es zu füllen Verfügung stellen, zB:. SELECT t *, (SELECT FROM y x) als Feld von der Tabelle T WHERE ... Hibernate erlaubt mir, dann verwenden Sie SQLQuery.addEntity (Z.class) und erzeugt das geeignete Objekt. Soweit ich verstehe, wenn ich das Feld aus dem Mapping ganz verlassen, kann ich nie das Attribut durch meine Abfrage füllen. Ich habe versucht :)

Ich war so etwas wie dies zu ahnen, aber ich wollte eine Bestätigung erhalten. Ich glaube nicht, dass viele Möglichkeiten hier: entweder ein <formula> (sei es eine „dumme“ Formel nur Trick Hibernate) oder Rückkehr einer nicht Entität verwaltet werden.

Andere Tipps

Es klingt wie Sie diese Eigenschaft wollen „transient“ sein

<transient name="foo" />
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top