3

私は非常に単純な JPA エンティティを持っています。いくつかの単純なメタデータ フィールド、および ID と、最大 500kB ~ 10MB の大きなペイロード文字列が特徴です。

@Entity
public class MyEntity{
  @Id
  @GenerateValue(Strategy=GenerationType.IDENTITY)
  private long myEntityId;

  private String metaData1; 
  ..
  private String metaDataN;

  @Lob
  private String payload; // large.

}

ほとんどの場合、私はペイロードの読み込みに夢中ではなく、メタデータ フィールドをクエリするだけです。ペイロードをラップする特定のエンティティを作成せずにペイロードを遅延ロードし、メイン エンティティからの遅延ロードと 1 対 1 の関係を持つ方法はありますか?

全体は、OpenJPA 1.2 と DB2 バッキング データベースを使用して実装されています。

4

3 に答える 3

8
@Lob
@Basic(fetch=FetchType.LAZY)
private String payload;
于 2012-05-10T14:00:55.893 に答える
0

次のものも使用できると思います:

@OneToOne(fetch=FetchType.LAZY)
@JoinColumn(//some col. name)
private String payload;
于 2012-05-17T17:22:18.303 に答える
0

Hibernate は、Lob 型としてマップされている限り、LOB をロードしません。

于 2014-03-27T01:36:44.097 に答える