2011-07-26 6 views
0

created_on列を作成しようとしています - この列には行の作成日時が格納されます。バージョンの列に応じて列にNHibernateを作成します

私はまた、レコードの最終更新時刻を保持する列であるVersion Columnを使用しています。これにはNhibernateが付属しています。

私がしたいのは、行がdbに挿入されるときに、バージョン列の値をcreated_on列にコピーすることです。 意味は、バージョンが変更され、エンティティが新しい場合(私たちは事前にフラッシュしています)、バージョン列の値をcreated_on列の中に入れる必要があります。

これまでは、インターセプタを使用して挿入後、PreFlushをオーバーライドするだけで、追加の更新でそれを行うことができました。

私はNhibernate 3とOracleを使って作業しています 提案がありますか?

答えて

1

私はNhibernateについて何も知らないけど、理解できるところでは...なぜデータベーストリガーを使用しないのですか?挿入後トリガー。

より簡単に(またはあまりにも単純に)、created_on列をデフォルト値sysdateで作成できます。

+0

複数のデータベースで作業しています。 –

+0

私はあなたの質問/状況を理解していないと思う。 –

1

「DBタイムスタンプ」のバージョン管理を使用しているようです。代わりに通常のタイムスタンプを使用できますか?これはコード内の値を設定している場合には簡単になります。

もう1つの方法は、作成した列を不変(読み取り専用)として、データベースレベルのデフォルトをCURRENT_TIMESTAMPとして設定することです。 DBを使用してバージョン列を設定しているのであれば、これは挿入の両方の列に同じ値を与えるはずです。

関連する問題