2 Stimmen

Dilemma bei der Verwendung des Ruhezustands (Hibernate)

Ich verwende zwei Tabellen für mein aktuelles Projekt (es wird sicherlich wachsen).

Die erste Tabelle hat eine Vielzahl von Spalten, z.B.

id|name|surname|age|token         |currentpackage|difference
1 |me  | you   | 22|xc2e2144124sd |100           |0

Zweite Tabelle:

id|mirror|token|        connsize|price
81|server|xc2e2144124sd|100mbps |1000

Diese Tabellen sind voll von Daten. Es gibt einige Zeilen in Tabelle 1, die denselben Token-Wert haben wie die in Tabelle 2.

Ich habe schon lange nach einer Lösung gegoogelt, dies ist die beste, die ich gefunden habe:

http://www.mkyong.com/hibernate/hibernate-one-to-one-relationship-example/ y http://www.vaannila.com/hibernate/hibernate-example/hibernate-mapping-one-to-one-1.html

Aber ich glaube nicht, dass dies auf meinen Fall zutrifft (oder doch?). In diesen Beispielen ist die Beziehung der Schlüssel, der inkrementell ist, mein Token ist einfach so, wie es in der Datenbank ist.

Mein endgültiges Ziel ist es, die Differenz zwischen aktueller Verpackung und Preis zu berechnen

Was würden Sie in diesem Fall empfehlen? Ich benutze java/hibernate/spring

Gibt es eine andere Möglichkeit, Hibernate zu sagen, dass die Verknüpfung über etwas anderes als den Primärschlüssel erfolgen soll? Ein benutzerdefinierter Schlüssel wie Token in Tabelle 1? Token ist eine Art Beziehung zwischen Tabelle 1 und Tabelle 2. Es sind viele (Tabelle 1) zu einer (Tabelle 2).

LETZTES UPDATE

Ich versuche es mit Hilfe einer Abfrage, um diese beiden Spalten zu subtrahieren:

UPDATE packages tl 
SET difference = (select (t2.price-t1.currentpackage) 
from packages t1, mirrors t2 
where t2.token= t1.token)

Ich habe diese Fehlermeldung erhalten:

ERROR:  more than one row returned by a subquery used as an expression

Ich muss viele Optionen ausprobiert haben, aber keine hat funktioniert.

Das habe ich auch schon versucht, mit dem gleichen Ergebnis:

UPDATE packages X 
SET difference = (select Y.price-X.currentpackage
FROM packages X
LEFT OUTER JOIN mirrors Y
ON Y.token = X.token)

Dies scheint das zu sein, wonach ich suche, aber ich kann es nicht in meine Abfrage einbauen:

Werte aus zwei verschiedenen Tabellen subtrahieren

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X