2012-03-25 11 views
1

私はいくつかのフィールドを含む基本的な休止状態エンティティを持っています。 現在、すべてのフィールドに@columnアノテーションが付いており、それに応じてDB scheamが対応しています。DBに休止状態のエンティティフィールドをコミットしていません

私がしたいのは、DBからフィールドの1つを削除するだけですが、エンティティに保持することです(いくつかの検証では必須ですが、DBに書き込まないでください)。

私はDB scheamを更新しましたが、私のエンティティはどうすればいいですか? フィールドから@columnアノテーションを削除するだけでよいですか?または、フィールドを粗い操作から除外するspesific jpaアノテーションはありますか?

ありがとうございます!

答えて

3

注釈@Transientとしてあなたのエンティティクラスの属性とは@Column注釈を削除します。

+0

こんにちは、ありがとう。私は@Transientで注釈を付けることで、このフィールドがjaxbによって処理されないため(ネットワークからサーバーへ、そしてクライアントからバックへ)、このフィールドが渡されるのを防ぐことができると思います。私はこのフィールドをクライアントからサーバーに渡すことができますが、単純にDBに書き込まないようにしたいので、この動作は私には適していません。 – forhas

+1

私はこれを達成する方法を知らない。 JAXBを使用してフィールドをシリアル化し、JPAを使用してフィールドをシリアル化しない場合。私に敵対するように見えます。 アプリケーションのJAXB部分に別の転送オブジェクトを使用する方が良いかもしれません。私はこれがあなたのコードを少しずつデカップルし、テストするためにコードを維持する方が良いと考えています。 – magomi

+0

こんにちは、あなたの問題の定義は現場で正しいです。あなたの提案は、私が現時点で実際に実装したオプションの1つです(私はエンティティをdho pojoでラップし、エンティティからpojoラッパーに自分のフィールドを除外しました)。ちょうど私がここに何かを見逃しているかもしれないと思っていた。ありがとうございました。 – forhas