Hibernateを使用してhql/sqlクエリを作成する必要がありますが、Hibernateでどのように達成できるのか正確にはわかりません。バックエンドデータベースはSQL Serverです。Hibernate - 単純なデータだが複雑なSQLクエリ
私は、取引ステータステーブルが保留、預金、クリア&バウンスしています。
取引 - 表1
Seq Receipt ID Status
1 1234 Pending
2 2345 Deposited
3 3456 Cleared
4 4567 Bounced
は、最初のレコードがPending
です。レコードの移動はfrom Pending to Deposit
で、次にfrom Deposit to either Cleared or Bounced
です。 Cleared
またはBounced
のいずれかにステータスの変更に応じて、それは別のテーブルにデータを挿入します - 正常に動作しているTable 2
現在のHQLクエリは、単純にTable 1
からデータを読み込み、特定のレシートIDについてTable 2
で同じステータスを探します。
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'))
時間の任意の時点で表2におけるCleared or Bounced
のいずれかの1つのレコードが存在しますので、これは、これまでのところ良い作品以下のような何か。
新しい変更
今、必要な変更はTable2
に同様Deposit
のレコードを入力することです。したがって、ステータスがPending to Deposit
から変更された場合は、Table2
にデータを入力する必要があります。
明らかに、上記のクエリでDeposit
というステータスを追加するだけでは機能しません。 Deposit
の場合は正常に動作しますが、ステータスがDeposit to Cleared/Bounced
から変更される場合、システムはのTable2
(サブクエリ)の既存のレコードを検出します。したがって、Cleared or Bounced
の新しいレコードは入力されません。 :(
私は労働組合でこれを行うことができると思いますが、どのように私はどんな複雑なクエリせずに休止状態(HQL)でそれを達成するかわからない。
ヘルププラザ!!!