この章では、リレーショナル・プロジェクトを使用するために構成する必要がある様々なコンポーネントについて説明します。
詳細は、次を参照してください。
表20-1では、リレーショナル・プロジェクトの構成可能オプションを示しています。
この章では、TopLink Workbenchを使用する場合の開発時のデータベースへのログインについても説明します。詳細は、「データベースへのログイン」を参照してください。
ここで説明される構成可能オプション以外にも、表19-2に示すように、ベース・クラスのオプションも構成する必要があります。
表20-1では、リレーショナル・プロジェクトの構成可能オプションを示しています。
表20-1 リレーショナル・プロジェクトの構成可能オプション
オプション | タイプ | TopLink Workbench | Java |
---|---|---|---|
|
基本 |
![]() |
![]() |
|
基本 |
![]() |
![]() |
|
基本 |
![]() |
![]() |
|
基本 |
![]() |
![]() |
「プロジェクト・レベルでのマッピングされたフィールド・アクセスの構成」 |
基本 |
![]() |
![]() |
「デフォルト・ディスクリプタのアドバンスト・プロパティの構成」 |
基本 |
![]() |
![]() |
|
基本 |
![]() |
![]() |
|
基本 |
![]() |
![]() |
|
基本 |
![]() |
![]() |
|
基本 |
![]() |
![]() |
「プロジェクト・レベルでのリレーショナル・データベース・プラットフォームの構成」 |
基本 |
![]() |
![]() |
|
基本 |
![]() |
![]() |
|
基本 |
![]() |
![]() |
|
基本 |
![]() |
![]() |
「プロジェクト・レベルでのキャッシュ・タイプとサイズの構成」 |
詳細 |
![]() |
![]() |
|
詳細 |
![]() |
![]() |
「プロジェクト・レベルでのキャッシュ・コーディネーション変更伝播機能の構成」 |
詳細 |
![]() |
![]() |
|
詳細 |
![]() |
![]() |
「プロジェクト・レベルでの名前付き問合せパラメータ使用のSQLおよびSQL文のキャッシュの構成」 |
詳細 |
![]() |
![]() |
|
詳細 |
![]() |
![]() |
|
詳細 |
![]() |
![]() |
|
詳細 |
![]() |
![]() |
この章では、TopLink Workbenchを使用する場合の開発時のデータベースへのログインについても説明します。詳細は、「データベースへのログイン」を参照してください。
各リレーショナル・プロジェクトに対して、データベース・プラットフォームを指定する必要があります(たとえば、Oracle Database 10gなど)。このプラットフォーム構成は、セッション・ログインによりオーバーライドされます(構成されている場合)。
詳細は、次を参照してください。
リレーショナル・プロジェクトのデータベース・プラットフォームを指定するには、次の手順を実行します。
ナビゲータでデータベース・オブジェクトを選択します。データベース・プロパティ・シートが表示されます。
図20-1 「データベース」プロパティ・シート、「データベース・プラットフォーム」のオプション
「変更」をクリックして、プロジェクトの新規データベース・プラットフォームを選択します。詳細は、「データ・ソース・プラットフォームのタイプ」を参照してください。
順序付けを使用すると、オブジェクトの挿入時に、そのオブジェクトの主キーまたはIDを自動的に割り当てることができます。
TopLinkの順序付けをプロジェクトまたはセッション・レベルで構成することにより、順序値(使用する順序のタイプ)を取得する方法をTopLinkに指示します。
CMPプロジェクトの場合、セッションは直接構成しません。この場合、順序をプロジェクト・レベルで構成する必要があります。CMP以外のプロジェクトの場合、セッションは直接構成できます。この場合、必要に応じてセッション・レベル順序構成を使用して、プロジェクト・レベル順序構成をセッション単位でオーバーライドできます(「セッション・レベルでの順序付けの構成」を参照)。
TopLink Workbench(「TopLink Workbenchの使用」を参照)を使用する場合、表の順序付け(「表の順序付け」を参照)およびネイティブ順序付け(「Oracleデータベース・プラットフォームによるネイティブ順序付け」および「Oracle以外のデータベース・プラットフォームによるネイティブ順序付け」を参照)を構成することや、すべての順序に適用される事前割当てサイズを構成することが可能です(「順序付けと事前割当てサイズ」を参照)。
Javaを使用する場合(「Javaの使用」を参照)、TopLinkがサポートしている任意の順序タイプを構成できます(「順序付けタイプ」を参照)。順序を任意の数および組合せで作成できます。順序オブジェクトを明示的に作成することや、プラットフォームが作成するデフォルトの順序を使用することが可能です。同じ順序を複数のディスクリプタに関連付け、ディスクリプタの順序ごとに個別の事前割当てサイズを構成できます。
BEA WebLogic CMPアプリケーションからOC4JおよびTopLinkの永続性に移行する場合(「BEA WebLogic永続性のOC4J TopLink永続性への移行」を参照)、TopLink移行ツールを使用しても、BEA WebLogicの単一列順序表はTopLinkの単一列順序表に移行されません(「単一列表の順序付け」を参照)。当初、アプリケーションがBEA WebLogicの単一列順序表を使用していた場合は、移行後はTopLinkの単一列順序表を使用するようにプロジェクトを手動で構成する必要があります。
プロジェクト(またはセッション)・レベルで順序タイプを構成した後、順序付けを有効にするには、順序フィールドおよび順序名を使用してディスクリプタを構成する必要があります(「ディスクリプタ・レベルでの順序付けの構成」を参照)。
順序付けの詳細は、「リレーショナル・プロジェクトにおける順序付けの概要」を参照してください。
注意: プロジェクトのデフォルトの順序付けオプションを変更しても、プロジェクト内の既存のディスクリプタには影響はありません。新規に追加されたディスクリプタのみ影響されます。 |
プロジェクトの順序付け情報を指定するには、次の手順を実行します。
ナビゲータでプロジェクト・オブジェクトを選択します。
エディタで「順序付け」タブを選択します。「順序付け」タブが表示されます。
次の表を参照し、フィールドにデータを入力して順序付け情報を構成します。
フィールド | 説明 |
---|---|
事前割当てサイズ | デフォルトの事前割当てサイズを指定します(「順序付けと事前割当てサイズ」を参照)。デフォルトは50です。構成する事前割当てサイズはすべての順序に適用されます。 |
デフォルトの順序表 | デフォルトの順序表名SEQUENCE 、デフォルトの順序名フィールドSEQ_NAME 、およびデフォルトの順序カウンタ・フィールドSEQ_COUNT を使用して表の順序付けを使用する場合、このオプションを選択します(「表の順序付け」を参照)。 |
ネイティブ順序付け | データベース・プラットフォームによって作成される順序付けオブジェクトを使用する場合、このオプションを選択します(「Oracleデータベース・プラットフォームによるネイティブ順序付け」または「Oracle以外のデータベース・プラットフォームによるネイティブ順序付け」を参照)。このオプションは、Oracle、Sybase、Microsoft SQLおよびIBM Informixデータベース・プラットフォームに対してのみ適用されます。 |
カスタム順序表 | 指定する順序表名、順序名フィールドおよび順序カウンタ・フィールド名を使用して表の順序付けを使用する場合、このオプションを選択します(「表の順序付け」を参照)。 |
名前 | 順序表の名前を指定します。 |
名前フィールド | 順序名を格納するために使用される列の名前を指定します。 |
カウンタ・フィールド | 順序カウントを格納するために使用される列の名前を指定します。 |
例20-1に示すように、Javaを使用すると、様々な順序を使用するようプロジェクトを構成できます。
例20-1 Javaでのプロジェクト・レベルでの順序付けの構成
// Enable native sequencing for the project as the default. Configured the default preallocation size project.getLogin().useNativeSequencing(); project.getLogin().setSequencePreallocationSize(50); // Configure the EMP_SEQ to not use preallocation DefaultSequence empSequence = new DefaultSequence("EMP_SEQ", 1); project.getLogin().addSequence(empSequence); // Configure the PROJ_SEQ to use a seperate sequence table UnarySequence projSequence = new UnarySequence("PROJ_SEQ_TAB", "COUNTER"); project.getLogin().addSequence(projSequence);
この項では、リレーショナル・データベースへのログインを定義する方法について説明します。ログインを定義した後、そのロールを指定する必要があります(「開発ログインおよびデプロイ・ログインの構成」を参照)。
ログインを作成し(「ログイン情報の構成」を参照)、開発ログインとして指定した後(「開発ログインおよびデプロイ・ログインの構成」を参照)、データベース・インスタンスにログインできます(「データベースへのログイン」を参照)。
データベース・ログインを作成または編集するには、次の手順を実行します。
ナビゲータでデータベース・オブジェクトを選択します。データベース・プロパティ・シートが表示されます。
「追加」をクリックして、「定義済ログイン」を新規作成します。
次の表を参照し、データベース・プロパティ・シート上のフィールドにデータを入力してデータベース・ログインを構成します。
フィールド | 説明 |
---|---|
定義済ログイン | データベースへのアクセスに使用するログイン。「追加」をクリックして新規ログインを追加、または「削除」をクリックして既存ログインを削除します。 |
ドライバ・クラス | データベースへの接続に使用するJDBCドライバ。 |
URL | 適切なデータベースへの接続に使用するURL。 |
ユーザー名 | データベースへのログインに必要な名前。 |
パスワード | データベースへのログインに必要なパスワード。
注意: JavaソースおよびデプロイXMLをエクスポートする際(「プロジェクト情報のエクスポート」を参照)、TopLink Workbenchは、JCE暗号化を使用して(JDK 1.4を使用する場合)、データベース・パスワードを書き込みます(該当する場合)。JDK 1.3以下でのパスワード暗号化使用の詳細は、『Oracle TopLinkスタート・ガイド』を参照してください。パスワード暗号化オプションの指定方法の詳細は、「パスワード暗号化の構成」を参照してください。 |
パスワードの保存 | この「定義済ログイン」に対して「パスワード」を保存するかどうかを指定します。 |
この項では、定義済ログインのロールを指定する方法について説明します。ログインの定義方法の詳細は、「ログイン情報の構成」を参照してください。TopLinkでは、次のログイン・ロールが認識されます。
開発ロール
TopLink Workbenchを使用してプロジェクトを開発する際(「開発ロール: 開発ログイン」を参照)、ログインを定義し(「ログイン情報の構成」を参照)、それを開発ログインとして指定する必要があります。開発ログインは、TopLinkプロジェクト・ファイルに格納されます。TopLink Workbenchは、TopLink Workbench内からデータ・ソース操作を実行する場合は必ず、開発ログインの情報を使用します。たとえば、アプリケーション開発時にスキーマ情報をデータ・ソースから読み取る、またはデータ・ソースに書き込む際、開発ログイン情報はsessions.xml
またはproject.xml
ファイルには書き込まれません。また、実行時にデプロイ・ログイン(またはセッション・ログイン)によってオーバーライドされます。
開発ログインを使用してデータベースに接続する方法の詳細は、「データベースへのログイン」を参照してください。
CMPデプロイ・ロール
CMPプロジェクトを作成する場合(「CMPデプロイ・ロール: デプロイ・ログイン」を参照)、ランタイム・ログインを定義し(「ログイン情報の構成」を参照)、それをデプロイ・ログインとして指定できます。これはsessions.xml
ファイル、CMPデプロイ・ファイル、またはJavaコードでオーバーライドされないかぎり、アプリケーションの実行時に使用するログインになります。
非CMPセッション・ロール
CMP以外のプロジェクトを作成している場合(「CMP以外のセッションのロール: セッション・ログイン」を参照)、実行時にプロジェクトで使用するセッションの格納には、sessions.xml
ファイルを使用することをお薦めします(「データ・ソース・ログインのタイプ」を参照)。
異なる開発データベース・ログインおよびデプロイ・データベース・ログインを指定するには、次の手順を実行します。
ナビゲータでデータベース・オブジェクトを選択します。データベース・プロパティ・シートが表示されます。
図20-4 「データベース」プロパティ・シート、「開発ログイン」および「デプロイ・ログイン」のオプション
次の表を参照し、データベース・プロパティ・シート上のフィールドにデータを入力してログインを構成します。
フィールド | 説明 |
---|---|
開発ログイン | TopLink Workbenchが開発時にデータベースへの接続および表情報の読取りまたは書込みに使用する「定義済ログイン」。
開発ログインを使用してデータベースに接続する方法の詳細は、「データベースへのログイン」を参照してください。 |
デプロイ・ログイン | TopLink対応のアプリケーションがデプロイ時に使用する「定義済ログイン」。 |
TopLink Workbenchを使用すると、ログインを作成し(「ログイン情報の構成」を参照)、開発ログインとして指定した後(「開発ログインおよびデプロイ・ログインの構成」を参照)、データベース・インスタンスにログインできます。
表情報をインポートまたはエクスポートする前に、データベースにログインする必要があります。
データベースにログインするには、次の手順のいずれかを実行します。
ナビゲータでデータベース・オブジェクトを選択し、「ログイン」をクリックします。TopLink Workbenchがデータベースにログインします。
ナビゲータでデータベース・オブジェクトを右クリックしてコンテキスト・メニューから「データベースにログイン」を選択するか、メニューから「選択」→「データベースにログイン」を選択します。
ナビゲータ・ウィンドウの「データベース」アイコンが変更され、データベースにログインしたことが示されます。
すべての名前付き問合せおよびファインダに対して、パラメータ使用のSQLおよびプリコンパイルされたSQL文のキャッシュを使用するようTopLinkを構成できます。
これらの設定は、名前付き問合せにのみ適用され(「名前付き問合せ」を参照)、一般操作または書込み操作のすべての問合せに適用されるものではありません。
通常、パラメータ使用のSQLを使用するには、そのSQLをセッションのログイン上で構成する必要があります(「JDBCオプションの構成」を参照)。セッション・レベルで構成すると、すべての問合せがパラメータ使用のSQLを必ず使用するようになります。
注意: J2EEデータ・ソースまたは外部接続プールを使用するアプリケーションでは、TopLinkにおいてではなくJ2EEサーバーのデータ・ソースにおいて、文のキャッシュを構成する必要があります。 |
表20-2は、どのプロジェクトが問合せ文のキャッシュおよびバインド構成をサポートしているかを示します。
表20-2 プロジェクトでのデフォルト名前付き問合せのキャッシュおよびバインドのサポート
プロジェクト・タイプ | TopLink Workbenchの使用 |
Javaの使用 |
---|---|---|
リレーショナル・プロジェクト |
|
|
EISプロジェクト |
![]() |
![]() |
XMLプロジェクト |
![]() |
![]() |
この項では、プロジェクト・レベルでのSQL文のキャッシュおよびバインドのオプションの構成について説明します。この構成は、このプロジェクトのディスクリプタで作成するすべての名前付き問合せに適用されます。
問合せレベルで名前付き問合せ文のキャッシュおよびバインドのオプションを構成して、このプロジェクト・レベルの構成を問合せ単位でオーバーライドすることもできます(「名前付き問合せのオプションの構成」を参照)。
パラメータ使用のSQLを使用して、1つ以上のバインドされたパラメータを除いて完全な問合せを作成し、格納することができます。TopLinkランタイムは、問合せの実行時に現在のパラメータ値をバインドします。この方法ではSQL実行のプリコンパイルが不要なため、頻繁に実行されるSQL文のパフォーマンスが向上します。
デフォルトでは、Oracle TopLinkでは、生成されたSQLに直接データを書き込み、パラメータ使用のSQLは使用しません。これは、多くのJDBCドライバがパラメータ・バインドを完全にサポートせず、限定的なサイズまたはタイプの制限があるためです。詳細は、「パラメータ使用のSQL(バインド)とプリコンパイルされたSQL文のキャッシュ」を参照してください。
名前付き問合せオプションを指定するには、次の手順を実行します。
ナビゲータでプロジェクト・オブジェクトを選択します。
エディタで「デフォルト」タブを選択します。「デフォルト」タブが表示されます。
次の表を使用して、「デフォルト」タブの次のフィールドにデータを入力し、新規に作成されたディスクリプタに対して名前付き問合せオプションを指定します。
フィールド | 説明 |
---|---|
すべての文をキャッシュ | TopLink文のキャッシュ内で問合せのプリコンパイルされたSQL文をキャッシュします。 |
すべてのパラメータのバインド | 問合せのパラメータをすべてバインドします。 |
TopLink Workbenchを使用して、TopLink Workbenchプロジェクトで定義するディスクリプタからデータベース表を生成する際に適用されるオプションを構成できます。結果の表および列は、プロジェクトのターゲット・データベースのネーミング規則に準拠します。
デフォルトの表生成のオプションを指定するには、次の手順を実行します。
ナビゲータでプロジェクト・オブジェクトを選択します。
エディタで「オプション」タブを選択します。「オプション」タブが表示されます。
次の表を使用して、各フィールドにデータを入力し、デフォルトのエクスポートおよび生成のオプションを指定します。
フィールド | 説明 |
---|---|
デフォルトの主キー | 主キーの生成時に使用されるデフォルト名を入力します。 |
主キー検索パターン | 主キーの生成時に使用されるデフォルト検索パターンを入力します。 |
TopLink Workbenchを使用して、データベース表の作成に使用できるJavaソース・コードをエクスポートする際に適用されるオプションを構成できます。
デフォルトのJavaコード生成のオプションを指定するには、次の手順を実行します。
ナビゲータでプロジェクト・オブジェクトを選択します。
エディタで「オプション」タブを選択します。「オプション」タブが表示されます。
次の表を使用して、各フィールドにデータを入力し、デフォルトの表作成のオプションを指定します。
フィールド | 説明 |
---|---|
クラス名 | プロジェクトから表のJavaソース・コードを生成する際に使用するベース・クラス名。 |
ルート・ディレクトリ | 生成されたソース・コードを格納するディレクトリ。 |
TopLink Workbenchを使用して、プロジェクトをJavaソースとしてエクスポートできます。プロジェクトをJavaソース・コードにエクスポートする際にTopLink Workbenchが使用するクラス名およびルート・ディレクトリを構成できます。
Javaソースとしてのプロジェクトのエクスポートの詳細は、「プロジェクトJavaソースのエクスポート」を参照してください。
デフォルトのJavaコード生成のオプションを指定するには、次の手順を実行します。
ナビゲータでプロジェクト・オブジェクトを選択します。
エディタで「オプション」タブを選択します。「オプション」タブが表示されます。
次の表を使用して、各フィールドにデータを入力し、デフォルトのエクスポートおよび生成オプションを指定します。
フィールド | 説明 |
---|---|
クラス名 | プロジェクトからJavaソース・コードを生成する際に使用するベース・クラス名 |
ルート・ディレクトリ | 生成されたソース・コードを格納するディレクトリ |