ヘッダーをスキップ

Oracle Containers for J2EE Enterprise JavaBeans開発者ガイド
10g(10.1.3.1.0)

B31852-03
目次
目次
索引
索引

戻る 次へ

3 OC4JでのEJBサポートについて

この章の内容は次のとおりです。

詳細は、Oracle Application Serverのリリース・ノートを参照してください。

EJB 3.0サポート

このリリースでは、OC4JはEJB 3.0最終仕様(http://jcp.org/aboutJava/communityprocess/pr/jsr220/index.html)で指定されたごく一部のサブセットを除くすべての機能をサポートします。

OC4Jが完全なEJB 3.0準拠に更新された後で、EJB 3.0 OC4Jアプリケーションに若干のコード変更を加えることが必要な場合があります。詳細は、「リリース10.1.3.0のTopLink JPAプレビュー・アプリケーションからリリース10.1.3.1のTopLink Essentials JPAへの移行」を参照してください。

このリリースのOC4Jでは、オブジェクト・リレーショナル・エンティティ・マッピング・タイプ(基本、バイナリ・ラージ・オブジェクト(LOB)、シリアライズ、1対1、多対1、
1対多、多対多および集約マッピング)を除くすべてのEJB 3.0機能に対して、アノテーションまたは標準のデプロイXML(ejb-jar.xmlまたはorion-ejb-jar.xml)の一方または両方の機能を使用できます。この場合、アノテーションまたはTopLink JPA永続性プロバイダのカスタマイズを使用する必要があります。

OC4Jでは、『Oracle Application Server Annotations API Reference』に記載されている固有のEJB 3.0アノテーションがサポートされます。

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

このリリースのOC4Jでは、Web層でのリソース・インジェクションがサポートされます。詳細は、「Web層でのアノテーション」を参照してください。

この項の内容は次のとおりです。

必要なJDK

デフォルトでは、EJB 3.0を使用している場合は、JDK 1.5を使用する必要があります。OC4Jのデフォルトでは、EJB 3.0とJDK 1.4の使用はサポートされません。

OC4JでEJB 3.0(アノテーションおよびインターセプタを除く)とJDK 1.4の使用がサポートされるのは、TopLink JPAプレビュー永続性プロバイダを使用する場合のみです。詳細は、
「JPA永続性JARファイル」に記載されているシステム・プロパティdefault.persistence.providerの説明を参照してください。

EJB 3.0アプリケーションの定義方法

エンティティの場合、OC4Jは、EJB JARがejb-jar.xmlファイルなしでデプロイされる場合にアプリケーションがEJB 3.0アプリケーションであると想定します。詳細は、「EJB永続性サービスについて」を参照してください。

セッションBeanおよびメッセージドリブンBeanの場合、OC4Jは、ejb-jar.xmlファイルの<ejb-jar>要素のversion属性が3.0に設定されている場合にアプリケーションがEJB 3.0アプリケーションであると想定します。

EJB 3.0アプリケーションでOC4Jが永続性を管理する方法

EJB 3.0アプリケーションでは、OC4JはJPA永続性プロバイダに永続性操作を委任します。このリリースのOC4Jは、EJB 3.0リファレンス実装のJPA永続性プロバイダであるTopLink Essentialsを使用します(「TopLink Essentials JPA永続性プロバイダ」を参照)。

TopLink Essentials JPA永続性プロバイダ

Oracle TopLinkは、高度なオブジェクト永続性およびオブジェクト変換フレームワークであり、開発作業と保守作業を削減し、エンタープライズ・アプリケーションの機能を高める開発ツールおよびランタイム機能を提供します。

このリリースでは、OC4JはEJB 3.0リファレンス実装のJPA永続性プロバイダであるTopLink Essentialsを使用してEJB 3.0エンティティを管理します。詳細は、『Oracle TopLink開発者ガイド』のTopLinkの概要に関する項を参照してください。

OC4Jには、EJB 3.0永続性仕様に規定されているクラスと、TopLink Essentials JPA永続性プロバイダ実装を構成するクラスの両方に対応するJARファイルが付属します。永続性JARファイルの詳細は、「JPA永続性JARファイル」を参照してください。

EJB 3.0プロジェクトの場合は、アノテーションまたはpersistence.xmlファイルを通じて永続性プロパティを構成します。OC4Jは、このメタデータをTopLink構成に変換します。TopLink Essentials EJB 3.0 JPA永続性プロバイダのカスタマイズの詳細は、「JPA永続性プロバイダのカスタマイズ」を参照してください。

JPA永続性JARファイル

OC4Jでは、TopLink Essentials JPA永続性プロバイダ実装を提供するために、表3-1にリストされたJARファイルを使用します。これらのJARファイルは、<ORACLE_HOME>/toplink/
jlib
ディレクトリにあります。

OC4Jで使用されるJPA永続性プロバイダ実装は、システム・プロパティdefault.persistence.providerにより決定されます。有効な値は次のとおりです。

JPA永続性プロバイダのカスタマイズ

通常は、オブジェクト・リレーショナル・アノテーション(「JPAエンティティのコンテナ管理の関連性フィールドの構成」を参照)を使用して、OC4Jがデータベースに永続性フィールドを格納する方法を指定します。また、このような各アノテーションについてデフォルトのTopLink EJB 3.0 JPA永続性プロバイダ構成に依存します。ただし、このデフォルト動作は、アプリケーション要件に合うようオーバーライドできます。同様に、TopLink EJB 3.0 JPA永続性プロバイダはJPA準拠ですが、JPA仕様に定義された機能を超える追加の拡張機能を使用できます。

OC4J JPA永続性プロバイダは、次の方法でカスタマイズできます。

TopLink Essentials JPA永続性を使用したTopLink APIへの実行時アクセス

TopLink Essentials JPA永続性プロバイダを使用している場合(デフォルト)、TopLink JPA拡張のtoplink.session.customizerおよびtoplink.descriptor.customizer.<ENTITY>を使用して実行時にJPAエンティティ・アプリケーションでTopLink APIにアクセスできます(表26-5を参照)。

TopLink JPAプレビュー永続性を使用したTopLink APIへの実行時アクセス

TopLink JPAプレビュー永続性プロバイダを使用している場合、ejb3-toplink-sessions.xmlファイル(「ejb3-toplink-sessions.xmlファイルとは」を参照)およびtoplink-ejb-jar.xmlファイル(「toplink-ejb-jar.xmlファイルとは」を参照)を作成して実行時にJPAエンティティ・アプリケーションでTopLink APIにアクセスできます。


注意

OC4Jでは、TopLink Essentials JPA永続性プロバイダがデフォルトで使用されます。この場合、TopLink JPA拡張を使用して実行時にJPAエンティティ・アプリケーションでTopLink APIにアクセスします(「TopLink Essentials JPA永続性を使用したTopLink APIへの実行時アクセス」を参照)。 


EJB 3.0エンティティを含むEJB-JARのMETA-INFディレクトリにこれらのファイルをパッケージ化します。

TopLink APIを使用して、アノテーションをオーバーライドするかアノテーションを完全に置換することにより、永続性をカスタマイズできます。たとえば、オブジェクト・リレーショナル・マッピングの大部分およびejb3-toplink-sessions.xmlファイルとtoplink-ejb-jar.xmlファイルでアノテーションを使用して、アノテーションに適していない複雑な関連のサブセットに対してオブジェクト・リレーショナル・マッピングを指定できます。

エンティティ・クラスで使用しているJDK 1.5言語拡張がアノテーションのみの場合は、TopLink Workbenchを使用してこれらのファイルを作成および構成できます。TopLink Workbenchを使用して、これらのファイルを作成および構成することをお薦めします。

TopLink JPAプレビュー永続性プロバイダをカスタマイズするには、次のようにします。

  1. リレーショナルTopLink Workbenchプロジェクトを作成します(『Oracle TopLink開発者ガイド』のプロジェクトの作成に関する項を参照)。

  2. JDK 1.5準拠のエンティティ・クラスを含むようにTopLink Workbenchプロジェクト・クラスパスを構成します(『Oracle TopLink開発者ガイド』のプロジェクトのクラスパスの構成に関する項を参照)。

  3. プロジェクトのデプロイXMLファイル名を(toplink-ejb-jar.xmlとして)構成し、場所を保存します(『Oracle TopLink開発者ガイド』のプロジェクトのデプロイXMLオプションの構成に関する項を参照)。

  4. オプションで、他のTopLinkプロジェクトレベル・オプションを構成します(『Oracle TopLink開発者ガイド』のリレーショナル・プロジェクトの構成に関する項を参照)。

  5. カスタマイズするエンティティ・クラスのTopLinkリレーショナル・ディスクリプタを構成します(『Oracle TopLink開発者ガイド』のリレーショナル・ディスクリプタの作成に関する項および『Oracle TopLink開発者ガイド』のリレーショナル・ディスクリプタの構成に関する項を参照)。

  6. カスタマイズする永続性フィールドのTopLinkリレーショナル・マッピングを構成します(『Oracle TopLink開発者ガイド』のマッピングの作成に関する項および『Oracle TopLink開発者ガイド』のリレーショナル・マッピングの構成に関する項を参照)。

  7. TopLink Workbenchプロジェクトをtoplink-ejb-jar.xml XMLファイルにエクスポートします(『Oracle TopLink開発者ガイド』のデプロイXML情報のエクスポートに関する項を参照)。

  8. ejb3-toplink-sessions.xmlという名前のTopLinkセッション構成ファイルを作成します(『Oracle TopLink開発者ガイド』のサーバー・セッションの作成に関する項を参照)。

  9. ejb3-toplink-sessions.xmlファイルのプライマリ・プロジェクトをtoplink-ejb-jar.xmlファイルに設定します(『Oracle TopLink開発者ガイド』のプライマリ・マッピング・プロジェクトの構成に関する項を参照)。

  10. オプションで、他の任意のTopLinkセッションレベル・オプションを構成します(『Oracle TopLink開発者ガイド』のサーバー・セッションの構成に関する項を参照)。

  11. TopLink Workbenchセッション構成ファイルを保存します。

  12. EJB 3.0エンティティを含むEJB-JARのMETA-INFディレクトリにejb3-toplink-sessions.xmlおよびtoplink-ejb-jar.xmlファイルをパッケージ化します。


    注意

    または、JDeveloperを使用して、ejb3-toplink-sessions.xmlおよびtoplink-ejb-jar.xmlファイルを作成できます(「EJB開発ツールの使用方法」を参照)。 


リリース10.1.3.0のTopLink JPAプレビュー・アプリケーションからリリース10.1.3.1のTopLink Essentials JPAへの移行

リリース10.1.3.0の場合、OC4Jでは、EJB 3.0パブリック・レビュー・ドラフトで指定された機能のサブセットに基づくTopLink JPAプレビュー永続性プロバイダを使用します。

リリース10.1.3.1の場合、OC4Jでは、EJB 3.0リファレンス実装のJPA永続性プロバイダであるTopLink Essentials JPA永続性プロバイダを使用して、EJB 3.0最終仕様に従ってJPAを完全にサポートします。

OC4Jリリース10.1.3.1でTopLink EssentialsおよびEJB 3.0最終版APIと組み合せて使用する前に、JPAプレビューに基づくアプリケーションのコードを変更する必要があります。

一般的に、次の手順を実行する必要があります。

  1. プレビューベースのアプリケーションをアンデプロイします。

  2. OC4Jをリリース10.1.3.0から10.1.3.1にアップグレードします。

  3. アップグレード後に必要な構成ファイルの変更を行います(「OC4J構成ファイルの変更」を参照)。

  4. 新規EJB 3.0 APIを使用するようコードを移行します。

    次の項で、変更箇所の識別に役立つTopLink JPAプレビューとTopLink完全版JPAの重要な相違点について説明します。

  5. 更新したアプリケーションを再デプロイします。

OC4J構成ファイルの変更

OC4Jリリース10.1.3.0.0にリリース10.1.3.1.0のパッチ・セットを適用したら、次のようにOC4J構成ファイルを手動で編集する必要があります。

  1. <ORACLE_HOME>/j2ee/home/config/server.xmlファイルを編集して次の要素を追加します。

    <shared-library name="oracle.persistence" version="1.0" library-compatible="true">
        <code-source path="../../../toplink/jlib/toplink-essentials.jar"/>
    </shared-library>
    
    
  2. <ORACLE_HOME>/j2ee/home/config/system-application.xmlファイルを編集して<imported-shared-libraries>要素に次の属性を追加します。

    <import-shared-library name="oracle.persistence"/>
    
    

javax.persistenceの変更

表3-2に、リリース10.1.3.0と10.1.3.1のjavax.persistenceパッケージで追加、削除および変更された内容をリストします。アプリケーションでこれらのクラスを使用する場合、最新のEJB 3.0仕様とJPA Javadocでその詳細を確認してください。

表3-2    javax.persistenceの変更 
10.1.3.0  10.1.3.1  説明 

AccessMode 

削除 

リリース10.1.3.1では、EJB 3.0エンティティにローカルまたはリモート・インタフェースは必要ありません。すべてのエンティティ・アクセスはEntityManagerを通じて行われるため、クライアントではアクセスがローカルかリモートかを考慮する必要がありません。 

AccessType 

削除 

リリース10.1.3.1では、EJB 3.0永続性を指定する場合にエンティティ階層の単一のアクセス・タイプを使用する必要があります。マッピング・アノテーションの置換により、有効なアクセス・タイプが決定されます。 

N/A 

AssociationOverride 

継承用のアノテーションに対する変更の一環としてリリース10.1.3.1で追加されました。

詳細は、http://www.oracle.com/technology/products/ias/toplink/
jpa/resources/toplink-jpa-annotations.html#AssociationOverrideを参照してください。 

N/A 

AssociationOverrides 

継承用のアノテーションに対する変更の一環としてリリース10.1.3.1で追加されました。

詳細は、http://www.oracle.com/technology/products/ias/toplink/
jpa/resources/toplink-jpa-annotations.html#AssociationOverridesを参照してください。 

Basic 

Basic 

リリース10.1.3.1では、属性temporalTypeが省略されています。

詳細は、http://www.oracle.com/technology/products/ias/toplink/
jpa/resources/toplink-jpa-annotations.html#Basicを参照してください。 

N/A 

DiscriminatorValue 

継承用のアノテーションに対する変更の一環としてリリース10.1.3.1で追加されました。

詳細は、http://www.oracle.com/technology/products/ias/toplink/
jpa/resources/toplink-jpa-annotations.html#InheritanceAnnotationsを参照してください。 

EmbeddableSuperclass 

削除 

継承用のアノテーションに対する変更の一環としてリリース10.1.3.1で追加されました。

詳細は、http://www.oracle.com/technology/products/ias/toplink/
jpa/resources/toplink-jpa-annotations.html#InheritanceAnnotationsを参照してください。 

Entity 

Entity 

リリース10.1.3.1では、属性accessが省略されています。 

N/A 

EntityExistsException 

リリース10.1.3.1で追加されました。 

EntityListener 

削除 

リリース10.1.3.1では、かわりにEntityListnersを使用します。

詳細は、http://www.oracle.com/technology/products/ias/toplink/
jpa/resources/toplink-jpa-annotations.html#EntityListenersを参照してください。 

N/A 

EntityListeners 

リリース10.1.3.1で追加されました。

詳細は、http://www.oracle.com/technology/products/ias/toplink/
jpa/resources/toplink-jpa-annotations.html#EntityListenersを参照してください。 

EntityManager 

EntityManager 

リリース10.1.3.1では、EntityManagerのメソッドgetUserTransactionの名前は、getTransactionになりました。

リリース10.1.3.1で追加された新規メソッドは、次のとおりです。

  • setFlushMode

  • getFlushMode

  • lock

  • clear

  • joinTransaction

  • getDelegate

リリース10.1.3.1では、このクラスのメソッドにより、EntityExistsExceptionIllegalStateExceptionなどの追加の例外がスローされます。また、IllegalArgumentExceptionのかわりにIllegalStateExceptionがスローされることもあります。 

EntityNotFoundException 

EntityNotFoundException 

リリース10.1.3.1では、この例外はRuntimeExceptionではなくPersistenceExceptionを拡張しています。 

EntityTransaction 

EntityTransaction 

リリース10.1.3.1で追加された新規メソッドは、次のとおりです。

  • setRollbackOnly

  • getRollbackOnly

 

EntityType 

削除 

リリース10.1.3.1では、EJB 3.0仕様によりBMPの概念が削除されています。

Java EE 5 BMPアプリケーションを開発およびデプロイするには、EJB 2.1 APIを使用する必要があります。 

N/A 

Enumerated 

列挙タイプのダイレクト・マッピングをサポートするため、リリース10.1.3.1で追加されました。

詳細は、http://www.oracle.com/technology/products/ias/toplink/
jpa/resources/toplink-jpa-annotations.html#Enumeratedを参照してください。 

N/A 

EnumType 

列挙タイプのダイレクト・マッピングをサポートするため、リリース10.1.3.1で追加されました。

詳細は、http://www.oracle.com/technology/products/ias/toplink/
jpa/resources/toplink-jpa-annotations.html#Enumeratedを参照してください。 

N/A 

ExcludeDefaultListeners 

ライフ・サイクル・コールバックのデフォルト・リスナーを管理するため、リリース10.1.3.1で追加されました。

詳細は、http://www.oracle.com/technology/products/ias/toplink/
jpa/resources/toplink-jpa-annotations.html#ExcludeDefaultListenersを参照してください。 

N/A 

ExcludeSuperclassListeners 

ライフ・サイクル・コールバックのスーパークラス・リスナーを管理するため、リリース10.1.3.1で追加されました。

詳細は、http://www.oracle.com/technology/products/ias/toplink/
jpa/resources/toplink-jpa-annotations.html#ExcludeSuperclassListenersを参照してください。 

FlushMode 

削除 

リリース10.1.3.1では、フラッシュ・モードを設定するために、EntityManagerのメソッドsetFlushModeを使用してFlushModeTypeを設定します。 

N/A 

GeneratedValue 

主キー(ID)の自動生成をサポートするため、リリース10.1.3.1で追加されました。

詳細は、http://www.oracle.com/technology/products/ias/toplink/
jpa/resources/toplink-jpa-annotations.html#GeneratedValueを参照してください。 

N/A 

GenerationType 

主キー(ID)の自動生成をサポートするため、リリース10.1.3.1で追加されました。

詳細は、http://www.oracle.com/technology/products/ias/toplink/
jpa/resources/toplink-jpa-annotations.html#GeneratedValueを参照してください。 

GeneratorType 

削除 

リリース10.1.3.1では、GeneratedValueの属性strategyを使用してGenerationTypeを設定します。 

Inheritance 

Inheritance 

リリース10.1.3.1では、次の属性が省略されています。

  • discriminatorType

  • discriminatorValue

詳細は、http://www.oracle.com/technology/products/ias/toplink/
jpa/resources/toplink-jpa-annotations.html#InheritanceAnnotationsを参照してください。 

JoinColumn 

JoinColumn 

リリース10.1.3.1では、属性secondaryTabletableに変更されています。

詳細は、http://www.oracle.com/technology/products/ias/toplink/
jpa/resources/toplink-jpa-annotations.html#JoinColumnを参照してください。 

JoinTable 

JoinTable 

リリース10.1.3.1では、属性tableTable型)がnameString型)に変更されています。

次の属性が追加されました。

  • catalog

  • schema

  • uniqueConstraints

詳細は、http://www.oracle.com/technology/products/ias/toplink/
jpa/resources/toplink-jpa-annotations.html#JoinTableを参照してください。 

LobType 

削除 

リリース10.1.3.1では、ダイレクト・マッピング・アノテーション@Lobを使用してLOB型を指定します。LOBには、バイナリ型または文字型があります。永続性プロバイダは、永続性フィールドまたはプロパティの型からLOB型を推測します。

詳細は、http://www.oracle.com/technology/products/ias/toplink/
jpa/resources/toplink-jpa-annotations.html#Lobを参照してください。 

N/A 

LockModeType 

リリース10.1.3.1で追加されました。 

N/A 

MappedSuperclass 

継承用のアノテーションに対する変更の一環としてリリース10.1.3.1で追加されました。

詳細は、http://www.oracle.com/technology/products/ias/toplink/
jpa/resources/toplink-jpa-annotations.html#MappedSuperclassを参照してください。 

NamedNativeQuery 

NamedNativeQuery 

リリース10.1.3.1では、属性queryStringqueryに変更され、属性hintsが追加されました。

詳細は、http://www.oracle.com/technology/products/ias/toplink/
jpa/resources/toplink-jpa-annotations.html#NamedNativeQueryを参照してください。 

NamedQuery 

NamedQuery 

リリース10.1.3.1では、属性queryStringqueryに変更され、属性hintsが追加されました。

詳細は、http://www.oracle.com/technology/products/ias/toplink/
jpa/resources/toplink-jpa-annotations.html#NamedQueryを参照してください。 

NoResultException 

NoResultException 

リリース10.1.3.1では、この例外はRuntimeExceptionではなくPersistenceExceptionを拡張しています。 

N/A 

OptimisticLockException 

リリース10.1.3.1で追加されました。 

PersistenceContext 

PersistenceContext 

リリース10.1.3.1では、属性propertiesが追加されました。

詳細は、http://www.oracle.com/technology/products/ias/toplink/
jpa/resources/toplink-jpa-annotations.html#PersistenceContextを参照してください。 

N/A 

PersistenceProperty 

詳細は、http://www.oracle.com/technology/products/ias/toplink/
jpa/resources/toplink-jpa-annotations.html#PersistencePropertyを参照してください。 

N/A 

QueryHint 

詳細は、http://www.oracle.com/technology/products/ias/toplink/
jpa/resources/toplink-jpa-annotations.html#QueryHintを参照してください。 

N/A 

RollbackException 

リリース10.1.3.1で追加されました。 

SecondaryTable 

SecondaryTable 

リリース10.1.3.1では、属性pkJoinpkJoinColumnsに変更されています。

詳細は、http://www.oracle.com/technology/products/ias/toplink/
jpa/resources/toplink-jpa-annotations.html#SecondaryTableを参照してください。 

SequenceGenerator 

SequenceGenerator 

リリース10.1.3.1では、属性initialValueのデフォルトが0から1に変更されています。

詳細は、http://www.oracle.com/technology/products/ias/toplink/
jpa/resources/toplink-jpa-annotations.html#SequenceGeneratorを参照してください。 

N/A 

SqlResultSetMappings 

詳細は、http://www.oracle.com/technology/products/ias/toplink/
jpa/resources/toplink-jpa-annotations.html#SqlResultSetMappingsを参照してください。 

Table 

Table 

リリース10.1.3.1では、属性specifiedが省略されています。

詳細は、http://www.oracle.com/technology/products/ias/toplink/
jpa/resources/toplink-jpa-annotations.html#Tableを参照してください。 

TableGenerator 

TableGenerator 

リリース10.1.3.1では、次の属性が追加されました。

  • catalog

  • schema

  • uniqueConstraints

詳細は、http://www.oracle.com/technology/products/ias/toplink/
jpa/resources/toplink-jpa-annotations.html#TableGeneratorを参照してください。 

N/A 

Temporal 

詳細は、http://www.oracle.com/technology/products/ias/toplink/
jpa/resources/toplink-jpa-annotations.html#Temporalを参照してください。 

TemporalType 

TemporalType 

リリース10.1.3.1では、列挙値NONEが省略されています。

詳細は、http://www.oracle.com/technology/products/ias/toplink/
jpa/resources/toplink-jpa-annotations.html#Temporalを参照してください。 

TransactionRequiredException 

TransactionRequiredException 

リリース10.1.3.1では、この例外はRuntimeExceptionではなくPersistenceExceptionを拡張しています。 

oracle.toplink.essentials.platform.databaseの変更

リリース10.1.3.1では、次の新規クラスが追加されました。

インターセプタ・サポートの変更

OC4JでTopLink JPAを使用する場合、インターセプタは、TopLink JPAプレビューとEJB 3.0最終仕様の間で大幅に変更されていることに注意してください。

EJB 3.0最終仕様では、インターセプタとライフ・サイクル・イベント・リスナーがマージされ、その両方でjavax.interceptors.Interceptorsが使用されます。このことは、特にセッションBeanとメッセージドリブンBeanでインターセプタまたはライフ・サイクル・イベント・リスナーを使用しているすべてのコードに影響します。

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

エンティティ・マネージャの取得

リリース10.1.3.0では、java.persistence.setup.configプロパティを使用して、エンティティ・マネージャが管理するエンティティのリストでクラスを識別します。

リリース10.1.3.1では、このプロパティは廃止されました。かわりに、EJB 3.0仕様で指定されているとおり、永続性ユニットに管理対象エンティティ・クラスを定義する必要があります。

リリース10.1.3.0では、@Resourceアノテーションを使用してエンティティ・マネージャを注入します。

リリース10.1.3.1では、次のように@PersistenceContextアノテーションを使用してエンティティ・マネージャを注入します。

@PersistenceContext protected EntityManager entityManager;

リリース10.1.3.1では、下位互換性を確保する目的で、OC4Jにより
@Resourceを使用したエンティティ・マネージャの注入がサポートされます。
ただし、EJB 3.0仕様に準拠するため、かわりに@PersistenceContextアノテーションを使用することをお薦めします。

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

新規JARファイル

リリース10.1.3.0の場合、OC4Jでは、persistence-preview.jarおよびtoplink.jarファイルを使用してJPAプレビュー実装を提供します。

リリース10.1.3.1の場合、OC4Jでは、persistence.jartoplink-essentials.jarおよびtoplink-essentials-agent.jarファイルを使用して完全なJPA実装を提供します。

使用中のIDEで、プロジェクトに関連付けられたライブラリ定義にリリース10.1.3.1のJPAライブラリのみが含まれ、旧リリースの10.1.3.0のライブラリは除外されていることを確認してください。

TopLink JARファイルの詳細は、「JPA永続性JARファイル」を参照してください。

EJB 2.1サポート

このリリースでは、OC4JはEJB 2.1最終リリース仕様(http://java.sun.com/products/ejb/docs.html)で指定されている機能をサポートしています。

この項の内容は次のとおりです。

必要なJDK

EJB 2.1を使用している場合は、JDK 1.4以上を使用する必要があります。

EJB 2.1モジュールの定義方法

デフォルトでは、モジュール・バージョン(ejb-jar.xmlファイルの<ejb-jar>要素のversion属性)は、2.xに設定されます。

通常、この値は、明示的に3.0に設定するか、ejb-jar.xmlファイルを省略した場合にのみ変化します。

CMPバージョン(ejb-jar.xmlファイルの<cmp-version>要素)は、EJBモジュール・バージョンとは無関係です。EJB 2.x CMPエンティティBeanの場合、<cmp-version>2.xに設定します。

この設定は、EJB 2.x CMPエンティティBeanとEJB 3.0エンティティを両方とも使用するEJB 3.0モジュールが存在する場合に有効です。

詳細は、「EJB永続性サービスについて」を参照してください。

EJB 2.1アプリケーションでOC4Jが永続性を管理する方法

OC4Jは、永続性マネージャに永続性操作を委任します。このリリースでは、OC4JはデフォルトでTopLink永続性マネージャを使用します(「TopLink EJB 2.1永続性マネージャ」を参照)。

Orion永続性マネージャは推奨されません。新規開発にはOC4JおよびTopLink永続性マネージャを使用することをお薦めします。移行ツール(「TopLink EJB 2.1永続性マネージャへの移行」を参照)を使用すると、Orion永続性マネージャでEJB 2.0エンティティBeanを使用する既存のOC4Jアプリケーションを簡単に移行して、TopLink永続性マネージャでEJB 2.0エンティティBeanを使用できます。Orion永続性マネージャの詳細は、『Oracle Containers for J2EE Orion CMP開発者ガイド』を参照してください。

TopLink EJB 2.1永続性マネージャ

Oracle TopLinkは、高度なオブジェクト永続性およびオブジェクト変換フレームワークであり、開発作業と保守作業を削減し、エンタープライズ・アプリケーションの機能を高める開発ツールおよびランタイム機能を提供します。

このリリースでは、OC4Jは、コンテナ管理の永続性を備えたEJB 2.1エンティティBeanの永続性マネージャとしてTopLinkを使用します。TopLink永続性マネージャの詳細は、『Oracle TopLink開発者ガイド』のTopLinkの概要に関する項を参照してください。

OC4Jには、TopLink EJB 2.1永続性マネージャ実装を構成するクラスのJARファイルが付属します。永続性JARファイルの詳細は、「EJB 2.1永続性JARファイル」を参照してください。

EJB 2.1プロジェクトの場合は、TopLink Workbench(『Oracle TopLink開発者ガイド』のTopLink Workbenchの理解に関する項を参照)を使用して、toplink-ejb-jar.xmlファイル(「toplink-ejb-jar.xmlファイルとは」を参照)で永続性プロパティを構成します。Orion CMPアプリケーションをTopLink永続性に移行する場合(「TopLink EJB 2.1永続性マネージャへの移行」を参照)、TopLink移行ツールはTopLink Workbenchプロジェクトを自動的に作成します。

TopLinkカスタマイズ・クラスを使用して実行時にこの構成をカスタマイズできます
「TopLink EJB 2.1永続性マネージャのカスタマイズ」を参照)。

EJB 2.1永続性JARファイル

OC4Jでは、TopLink EJB 2.1永続性マネージャ実装を提供するために、表3-3にリストされたTopLink JARファイルを使用します。これらのJARファイルは、<ORACLE_HOME>/toplink/
jlib
ディレクトリにあります。

表3-3    TopLink JARファイル 
JARファイル  内容 

antlr.jar 

このJARには、Antlr(ANother Tool for Language Recognition)ツールが含まれます。 

toplink.jar 

このJARには、Oracle JDBC依存を伴うクラスなど、TopLink APIを構成するすべてのクラスが含まれます。

OC4JとともにインストールされるOracle JDBCドライバのデフォルト・バージョンとは異なるバージョンを使用する場合、「TopLinkとOracle JDBCドライバとの関連付け」を参照してください。 

toplink-agent.jar 

このJARには、EJB 2.1エンティティBeanクラスに対するバイトコード・ウィービングを実行してValueHolderを使用せずに透過的な1対1および多対1のインダイレクションを有効化する際にTopLinkが使用するクラスが含まれます。toplink-agent.jarを起動するには、アプリケーションのJVMコマンドラインに-javaagent:toplink-agent.jarを追加します。このJARは、TopLinkアプリケーションのクラスパスには含めないでください。

このJRAはオプションです。クラスパスには配置せず、-javaagentの一部としてのみ使用してください。 

toplink-oc4j.jar 

このJARには、Oracle Containers for J2EEとの統合のためにTopLinkが使用するクラスが含まれます。

このJARファイルは、OC4Jでのみ使用します。コンテナは、toplink-oc4j.jarを使用するよう事前構成されています。OC4J以外のアプリケーションでは、toplink.jarを使用してください。 

TopLink EJB 2.1永続性マネージャのカスタマイズ

実行時に、TopLink永続性マネージャAPIを使用して高度なTopLink機能を利用できます。

EJB 2.1 CMPアプリケーションでTopLink永続性マネージャAPIにアクセスするために、デプロイJARにTopLinkカスタマイズ・クラスを含めることができます。

このオプションのJavaクラスは、oracle.toplink.ejb.cmp.DeploymentCustomizationを実装して、TopLinkマッピングおよびランタイム構成のデプロイのカスタマイズを可能にします。デプロイ時に、TopLinkランタイムはこのクラスの新規インスタンスを作成し、そのメソッドbeforeLoginCustomization(TopLinkランタイムがセッションにログインする前)およびafterLoginCustomization(TopLinkランタイムがセッションにログインした後)を起動して、TopLinkセッションをパラメータとして渡します。

beforeLoginCustomizationメソッドの実装を使用して、キャッシュ調整、パラメータ使用のSQL、ネイティブSQL、バッチ書込み/バッチ・サイズ、バイト配列/文字列バインディング、ログイン、イベント・リスナー、表の修飾子、順序付けなどのTopLinkセッション属性を構成します。

EJB 2.1の場合は、TopLinkカスタマイズ・クラスを使用して、TopLink Workbench GUIからはアクセスできないTopLink永続性マネージャAPIにアクセスできます。

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

TopLink EJB 2.1永続性マネージャへの移行

TopLink移行ツールを使用すると、Orion永続性マネージャでEJB 2.0エンティティBeanを使用する既存のOC4Jアプリケーションを簡単に移行して、TopLink永続性マネージャでEJB 2.0エンティティBeanを使用できます。

TopLink移行ツールの使用方法の詳細は、『Oracle TopLink開発者ガイド』のOC4J Orion永続性からOC4J TopLink永続性への移行に関する項を参照してください。


戻る 次へ
Oracle
Copyright © 2002, 2008 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引