Ich brauche eine hql/SQL-Abfrage mit Hibernate, aber ich weiß nicht genau, wie ich das in Hibernate erreichen kann. Backend-Datenbank ist SQL Server.Hibernate - Einfache Daten, aber komplexe SQL-Abfrage
Ich habe Transaktionstabelle mit Master-Status - Ausstehend, Kaution, Clear & Bounce.
Transaktionen - 1 Tabelle
Seq Receipt ID Status
1 1234 Pending
2 2345 Deposited
3 3456 Cleared
4 4567 Bounced
Zunächst werden die Datensätze sind in Pending
. Die Verschiebung der Aufzeichnungen ist from Pending to Deposit
und dann from Deposit to either Cleared or Bounced
. es fügt Daten in einer anderen Tabelle entweder Cleared
oder Bounced
Je nach Statusänderung - Table 2
Aktuelle HQL-Abfrage, die einfach funktioniert gut die Daten von Table 1
liest und in Table 2
für bestimmten Eingang ID für den gleichen Status suchen. So etwas wie unten
Select receiptID from Table1 where table1.status in ('Bounced','Cleared')
and not exists (select table2.receiptID from Table2 where
table1.receiptID = table2.receiptID and table2.status in ('Cleared','Bounced'))
Das funktioniert so weit gut, wie an jedem Punkt der Zeit wird es ein Rekord von beiden Cleared or Bounced
in Tabelle 2.
New Change
Nun benötigt die Änderung ist die Aufzeichnung für Deposit
auch in Table2
einzugeben. Also, wenn sich der Status von Pending to Deposit
ändert, muss ich Daten in Table2
eingeben.
Nun, natürlich, nur durch Hinzufügen des Status als Deposit
in oben genannten Abfrage wird nicht funktionieren. Es funktioniert gut für Deposit
, aber wenn der Status von Deposit to Cleared/Bounced
ändert, dann wird das System vorhandenen Datensatz in Table2
(Unterabfrage) für Deposit
finden daher wird es keinen neuen Datensatz für Cleared or Bounced
eingeben. :(
Ich glaube, ich kann dies tun mit Union, aber nicht sicher, wie ich es in den Ruhezustand (HQL) ohne komplexe Abfrage erreichen.
Hilfe plz !!!