Oracle® Fusion Middleware Oracle TopLink Java Persistence API (JPA)拡張機能リファレンス 12c (12.1.2) E48005-01 |
|
![]() 前 |
![]() 次 |
@MapKeyConvert
を使用して、対応するマップ済属性のキー列とともに使用される名前付きコンバータを指定します。
注釈要素
表2-31は、この注釈の要素を示しています。
表2-31 @MapKeyConvertの注釈要素
注釈要素 | 説明 | デフォルト |
---|---|---|
|
(オプション)使用するコンバータの名前
|
なし |
使用方法
@MapKeyConvert
を使用して、@MapKeyColumn
で使用されるキー値を変換し、データベース列とは異なる型または値を持つようにします。
@MapKeyConvert
注釈には、次の予約名があります。
serialized
: 関連付けられたマッピングでSerializedObjectConverter
を使用します。SerializedObjectConverter
を使用する場合、データベース表現はオブジェクトのシリアライズされたバージョンを保持するバイナリ・フィールドになり、オブジェクト・モデル表現は実際のオブジェクトになります。
class-instance
: 関連付けられたマッピングでClassInstanceConverterを使用します。ClassInstanceConverterを使用する場合、データベース表現はクラス名を表す文字列になり、オブジェクト・モデル表現は引数なしのコンストラクタで構築されたクラスのインスタンスになります。
none
: 関連付けられたマッピングにコンバータを配置しません。別のコンバータがデフォルトで設定されているか、または別のコンバータが設定されている状況をオーバーライドするために使用できます。
これらの予約名のいずれかを使用しない場合は、@Converter
注釈を使用してカスタム・コンバータを定義する必要があります。
例
例2-56に、@MapKeyConvert
注釈を使用して、コンバータをマップのキーに適用します。
例2-56 @MapKeyConvert注釈の使用
@Entity
public class Entity
…
@ElementCollection
@MapKeyColumn(name=”BANK”)
@Column(name=”ACCOUNT”)
@Convert(“Long2String”)
@MapKeyConvert(“CreditLine”)
public Map<String,Long> getCreditLines() {
return creditLines;
}
例2-57に、eclipselink-orm.xml
ファイルの<map-key-convert>
要素を使用する方法を示します。
例2-57 <map-key-convert> XMLの使用
<element-collection name="creditLines">
<map-key-convert>CreditLine</map-key-convert>
<map-key-column name="BANK"/>
<column name="ACCOUNT"/>
<convert>Long2String</convert>
<object-type-converter name="CreditLine">
<conversion-value data-value="RBC" object-value="RoyalBank"/>
<conversion-value data-value="CIBC" object-value="CanadianImperial"/>
<conversion-value data-value="SB" object-value="Scotiabank"/>
<conversion-value data-value="TD" object-value="TorontoDominion"/>
</object-type-converter>
<type-converter name="Long2String" data-type="String" object-type="Long"/>
<collection-table name="EMP_CREDITLINES">
<join-column name="EMP_ID"/>
</collection-table>
</element-collection>
関連項目
詳細は、次を参照してください。