2011-02-10 5 views
1

私は2つのテーブルとビューを持っています。 TableAには特定のフィールドがあります。 TableAHistoryにはTableAと同じフィールドがあります。 ViewAllはTableAとTableAHistoryの和集合ですが、さらに現在のバージョン(TableA行の場合は 'Y'、TableAHistory行の場合は 'N')を示すcurrent_versというフィールドがあります。テーブルとビュー間でのHibernateエンティティの継承

TableA用の既存のHibernate Entity Beanを取得し、ViewAll用のビューを作成するためにそれを拡張する必要があるようです。しかし、これを行うと、私にはないDTYPEカラムに関するエラーが出ます。

どうすればよいですか?

EDIT:ビューをクエリできるようにする必要がありますが、結果がTableA Beanになる必要があります。

+0

TableAとTableHistoryは同じまたは別のDBテーブルにありますか? –

+0

これらは別々のテーブルです。 TableAが変更されたときにTableAからTableBにデータをコピーするトリガがあります。 –

答えて

0

あなたがしようとしているように見えるのは、監査証跡を作成することです。私の答えは、その前提に基づいています。

最高のHibernate承認ソリューションは、Hibernate Enversを使用することです。これにより、どのフィールドを監査するか、関係や継承境界を越えて機能する強力なバージョニング実装をきめ細かく制御できます。 Enversには、以前のバージョンにアクセスして変更、タイムスタンプ、バージョンなどを表示するためのAPIもあります。

これを追加する際に柔軟性がある場合は、Enversを使用することを強く推奨します。

関連する問題