2

中程度のテキスト フィールドを持つテーブルの Hibernate 3 マッピングがあります。テーブルには、中程度のテキスト フィールド以外に数千のレコードがあり、他のフィールドにはあまりデータが保持されていません。

テーブル全体をメモリにロードする必要があります。ただし、ほとんど使用されないミディアム テキスト フィールドは除きます。

レイジー フェッチ アノテーションについては聞いたことがありますが、このレガシー コードは Hibernate XDoclet を使用しており、休止状態のプロパティ定義でレイジー フェッチについて言及していません。

http://xdoclet.sourceforge.net/xdoclet/tags/hibernate-tags.html#@hibernate_property_ 0 _1_

ゲッターが呼び出されたときにのみ値を取得するように Hibernate に指示する方法はありますか?

4

2 に答える 2

0

Hibernate のデフォルトは、exlplicity が Eager fetching に設定しない限り、lazy fetching をサポートしていました。遅延フェッチについてのアイデアを知りたい場合は、これを参照してください

プロパティの laza 読み込みの場合は、次のようなものを試してください

<?xml version="1.0" encoding="UTF-8"?> 

<!DOCTYPE hibernate-mapping PUBLIC 
"-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 

<hibernate-mapping 
> 
<class 
name="db.hibernateSimple.Copay" 
table="EHR_COPAY" 
polymorphism="explicit" 
> 

<id 
name="id" 
column="COPAY_ID" 
type="long" 
unsaved-value="null" 
> 
<generator class="sequence"> 
<param name="table">HIVAL</param> 
<param name="column">NEXT</param> 
<!-- 
To add non XDoclet generator parameters, create a file named 
hibernate-generator-params-Copay.xml 
containing the additional parameters and place it in your merge dir. 
--> 
</generator> 
</id> 

<property 
name="balance" 
type="int" 
column="balance" 
length="10" 
/> 

<property 
name="date" 
type="java.lang.String" 
column="OWNERSHIP_DATE" 
/> 

<property 
name="comments" 
type="java.lang.String" 
column="comments" 
lazy="true" 
/> 

<many-to-one 
name="user" 
class="db.hibernateSimple.User" 
cascade="none" 
outer-join="auto" 
column="USER_ID_SEQ" 
/> 

ここから上記を抽出しました

于 2013-05-03T05:44:31.637 に答える