ヘッダーをスキップ
Oracle® Fusion Middleware Oracle TopLink Java Persistence API (JPA)拡張機能リファレンス
12c (12.1.2)
E48005-01
  目次へ移動
目次

前
 
次
 

@MapKeyConvert

@MapKeyConvertを使用して、対応するマップ済属性のキー列とともに使用される名前付きコンバータを指定します。

注釈要素

表2-31は、この注釈の要素を示しています。

表2-31 @MapKeyConvertの注釈要素

注釈要素 説明 デフォルト

value

(オプション)使用するコンバータの名前

  • serialized

  • class-instance

  • none

  • カスタム・コンバータ

なし


使用方法

@MapKeyConvertを使用して、@MapKeyColumnで使用されるキー値を変換し、データベース列とは異なる型または値を持つようにします。

@MapKeyConvert注釈には、次の予約名があります。

これらの予約名のいずれかを使用しない場合は、@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>

関連項目

詳細は、次を参照してください。