2011-08-16 19 views
0

私はいくつかのフィールドを持つエンティティを持っている:Hibernate - エンティティを保持するが、特定のフィールドを無視する方法?

@Entity 
public class Leilighet { 
@Id @GeneratedValue(strategy = GenerationType.AUTO) 
private Long leilighetId; 
private String navn; 
private String beskrivelse; 
private String adresse; 
private String postNr; 
private String postSted; 
private double pris; 

//The following fields should not be stored: 
private String filename; 
private String filetype; 
private String filesize; 
private byte[] filebin; 

.... 
} 

私は、このオブジェクトを読み込むとMySQLにそれを持続し、対応するフォームとアクションを持っています。 新しい「ライライゲット(Leilighet)」を保存する場合は、これはすべて役に立ちます。

しかし、このフォームを使用して既存の「Leilighet」を編集すると、私は何をすべきか把握できません。

編集目的で、私はアップロードされたファイル全体をロードしたくありません。ファイルが存在することを示すためにファイル名を表示すれば十分です。ユーザーが新しいファイルを選択した場合は上書きする必要がありますが、ユーザーが何も選択しない場合は、現在のファイルを保存する必要があります。

しかし、私は休止状態にする方法を理解できません。 filebinに実際のファイルを設定しない限り、hibernateはファイルを単に削除します。

ファイルフィールドではなく、ほかのフィールドを更新するにはどうすればよいでしょうか?

答えて

1

Hibernateは、個々のプロパティを遅延ロードすることをサポートしています。詳細については、http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#performance-fetching-lazypropertiesを参照してください。

または、この特定のユースケースで必要なフィールドのみを使用してDTOを使用し、このDTOをデータベースから取り込むために適切な予測を含むクエリを実行することができます。

+0

私は別のDTOを作成しなければならないと思います。あなたのご意見ありがとうございます! – user829237

関連する問題