この章では、リレーショナル・プロジェクトを使用するために構成する必要のある様々なコンポーネントについて説明します。
この章の内容は次のとおりです。
この章では、TopLink Workbenchを使用する場合の開発時のデータベースへのログインについても説明します。詳細は、20.6項「データベースへのログイン」を参照してください。
複数のプロジェクト・タイプに共通のTopLinkプロジェクトのオプションを構成する方法の詳細は、第117章「プロジェクトの構成」を参照してください。
表20-1は、リレーショナル・プロジェクトの構成可能オプションを示します。
この章では、TopLink Workbenchを使用する場合の開発時のデータベースへのログインについても説明します。詳細は、20.6項「データベースへのログイン」を参照してください。
ここで説明される構成可能オプション以外にも、表117-2「共通プロジェクト・オプション」に示すように、ベース・クラスのオプションも構成する必要があります。
表20-1は、リレーショナル・プロジェクトの構成可能オプションを示します。
表20-1 リレーショナル・プロジェクトの構成可能オプション
詳細は、第18章「リレーショナル・プロジェクトの概要」を参照してください。
各リレーショナル・プロジェクトに対して、データベース・プラットフォームを指定する必要があります(たとえば、Oracle Database 10gなど)。このプラットフォーム構成は、セッション・ログインによりオーバーライドされます(構成されている場合)。
詳細は、次を参照してください。
リレーショナル・プロジェクトのデータベース・プラットフォームを指定するには、次の手順を実行します。
ナビゲータでデータベース・オブジェクトを選択します。データベース・プロパティ・シートが表示されます。
図20-1 「データベース」プロパティ・シート、「データベース・プラットフォーム」のオプション
「変更」をクリックして、プロジェクトの新規データベース・プラットフォームを選択します。詳細は、96.1.3項「データ・ソース・プラットフォームのタイプ」を参照してください。
順序付けを使用すると、オブジェクトの挿入時に、そのオブジェクトの主キーまたはIDを自動的に割り当てることができます。
TopLinkの順序付けをプロジェクトまたはセッション・レベルで構成することにより、順序値(使用する順序のタイプ)を取得する方法をTopLinkに指示します。
CMPプロジェクトの場合、セッションは直接構成しません。この場合、順序をプロジェクト・レベルで構成する必要があります。POJOプロジェクトの場合、セッションは直接構成できます。この場合、必要に応じてセッション・レベル順序構成を使用して、プロジェクト・レベル順序構成をセッション単位でオーバーライドできます(98.4項「セッション・レベルでの順序付けの構成」を参照)。
Oracle JDeveloperを使用して順序付けを構成できます。
TopLink Workbench(20.3.1項「TopLink Workbenchを使用したプロジェクト・レベルでの順序付けの構成方法」を参照)を使用する場合、表の順序付け(18.2.2.1項「表の順序付け」を参照)およびネイティブ順序付け(18.2.2.5項「Oracleデータベース・プラットフォームによるネイティブ順序付け」および18.2.2.6項「Oracle以外のデータベース・プラットフォームによるネイティブ順序付け」を参照)を構成することや、すべての順序に適用される事前割当てサイズを構成することが可能です(18.2.3項「順序付けと事前割当てサイズ」を参照)。
Javaを使用する場合(20.3.2項「Javaを使用したプロジェクト・レベルでの順序付けの構成方法」を参照)、TopLinkがサポートしている任意の順序タイプを構成できます(18.2.2項「順序付けタイプ」を参照)。順序を任意の数および組合せで作成できます。順序オブジェクトを明示的に作成することや、プラットフォームが作成するデフォルトの順序を使用することが可能です。同じ順序を複数のディスクリプタに関連付け、ディスクリプタの順序ごとに個別の事前割当てサイズを構成できます。
プロジェクト(またはセッション)・レベルで順序タイプを構成した後、順序付けを有効にするには、順序フィールドおよび順序名を使用してディスクリプタを構成する必要があります(23.3項「ディスクリプタ・レベルでの順序付けの構成」を参照)。
順序付けの詳細は、18.2項「リレーショナル・プロジェクトにおける順序付け」を参照してください。
プロジェクトの順序付け情報を指定するには、次の手順を実行します。
ナビゲータでプロジェクト・オブジェクトを選択します。
エディタで「順序付け」タブを選択します。「順序付け」タブが表示されます。
次の表を参照し、フィールドにデータを入力して順序付け情報を構成します。
フィールド | 説明 |
---|---|
事前割当てサイズ | デフォルトの事前割当てサイズを指定します(18.2.3項「順序付けと事前割当てサイズ」を参照)。デフォルトは50です。構成する事前割当てサイズはすべての順序に適用されます。 |
デフォルトの順序表 | デフォルトの順序表名SEQUENCE 、デフォルトの順序名フィールドSEQ_NAME 、およびデフォルトの順序カウンタ・フィールドSEQ_COUNT を使用して表の順序付けを使用する場合、このオプションを選択します(18.2.2.1項「表の順序付け」を参照)。 |
ネイティブ順序付け | データベース・プラットフォームによって作成される順序付けオブジェクトを使用する場合、このオプションを選択します(18.2.2.5項「Oracleデータベース・プラットフォームによるネイティブ順序付け」または18.2.2.6項「Oracle以外のデータベース・プラットフォームによるネイティブ順序付け」を参照)。このオプションは、Oracle、Sybase、Microsoft SQLおよびIBM Informixデータベース・プラットフォームに対してのみ適用されます。 |
カスタム順序表 | 指定する順序表名、順序名フィールドおよび順序カウンタ・フィールド名を使用して表の順序付けを使用する場合、このオプションを選択します(18.2.2.1項「表の順序付け」を参照)。 |
名前 | 順序表の名前を指定します。 |
名前フィールド | 順序名を格納するために使用される列の名前を指定します。 |
カウンタ・フィールド | 順序カウントを格納するために使用される列の名前を指定します。 |
例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);
この項では、リレーショナル・データベースへのログインを定義する方法について説明します。ログインを定義した後、そのロールを指定する必要があります(20.5項「開発ログインおよびデプロイ・ログインの構成」を参照)。
ログインを作成し(20.4項「プロジェクト・レベルでのログイン情報の構成」を参照)、開発ログインとして指定した後(20.5「開発ログインおよびデプロイ・ログインの構成」を参照)、データベース・インスタンスにログインできます(20.6項「データベースへのログイン」を参照)。
データベース・ログインを作成または編集するには、次の手順を実行します。
ナビゲータでデータベース・オブジェクトを選択します。データベース・プロパティ・シートが表示されます。
「追加」をクリックして、「定義済ログイン」を新規作成します。
プロパティ・シートの「定義済ログイン」フィールドをすべて入力します。
次の表を参照し、データベース・プロパティ・シート上のフィールドにデータを入力してデータベース・ログインを構成します。
フィールド | 説明 |
---|---|
定義済ログイン | データベースへのアクセスに使用するログイン。「追加」をクリックして新規ログインを追加、または「削除」をクリックして既存ログインを削除します。 |
ドライバ・クラス | データベースへの接続に使用するJDBCドライバ。 |
URL | 適切なデータベースへの接続に使用するURL。 |
ユーザー名 | データベースへのログインに必要な名前。 |
パスワード | データベースへのログインに必要なパスワード。 |
パスワードの保存 | この「定義済ログイン」に対して「パスワード」を保存するかどうかを指定します。
デプロイ・ログインにはパスワードを保存しないことをお薦めします。 注意: 「パスワードの保存」を選択し、JavaソースおよびデプロイXMLをエクスポートする際(116.3項「プロジェクト情報のエクスポート」を参照)、TopLink Workbenchは、JCE暗号化を使用して(JDK 1.4以上を使用する場合)、データベース・パスワードを書き込みます。パスワード暗号化オプションの指定方法の詳細は、97.3項「パスワード暗号化の構成」を参照してください。 デフォルト: 選択なし |
この項では、定義済ログインのロールを指定する方法について説明します。ログインの定義方法の詳細は、20.4項「プロジェクト・レベルでのログイン情報の構成」を参照してください。TopLinkでは、次のログイン・ロールが認識されます。
開発ロール
TopLink Workbenchを使用してプロジェクトを開発する際(15.2.4.3項「開発ロール」を参照)、ログインを定義し(20.4項「プロジェクト・レベルでのログイン情報の構成」を参照)、それを開発ログインとして指定する必要があります。開発ログインは、TopLinkプロジェクト・ファイルに格納されます。TopLink Workbenchは、TopLink Workbench内からデータ・ソース操作を実行する場合は必ず、開発ログインの情報を使用します。たとえば、アプリケーション開発時にスキーマ情報をデータ・ソースから読み取る、またはデータ・ソースに書き込む際、開発ログイン情報はsessions.xml
またはproject.xml
ファイルには書き込まれません。また、実行時にデプロイ・ログイン(またはセッション・ログイン)によってオーバーライドされます。
開発ログインを使用してデータベースに接続する方法の詳細は、20.6項「データベースへのログイン」を参照してください。
CMPデプロイ・ロール
CMPプロジェクトを作成する場合(15.2.4.2項「CMPデプロイ・ロール」を参照)、ランタイム・ログインを定義し(20.4項「プロジェクト・レベルでのログイン情報の構成」を参照)、それをデプロイ・ログインとして指定できます。これはsessions.xml
ファイル、CMPデプロイ・ファイル、またはJavaコードでオーバーライドされないかぎり、アプリケーションの実行時に使用するログインになります。
POJOセッション・ロール
POJOプロジェクトを作成している場合(15.2.4.1項「POJOセッション・ロール」を参照)、実行時にプロジェクトで使用するセッションの格納には、sessions.xml
ファイルを使用することをお薦めします(96.1.2項「データ・ソース・ログインのタイプ」を参照)。
異なる開発データベース・ログインおよびデプロイ・データベース・ログインを指定するには、次の手順を実行します。
ナビゲータでデータベース・オブジェクトを選択します。データベース・プロパティ・シートが表示されます。
図20-4 「データベース」プロパティ・シート、「開発ログイン」および「デプロイ・ログイン」のオプション
次の表を参照し、データベース・プロパティ・シート上のフィールドにデータを入力してログインを構成します。
フィールド | 説明 |
---|---|
開発ログイン | TopLink Workbenchが開発時にデータベースへの接続および表情報の読取りまたは書込みに使用する「定義済ログイン」。
開発ログインを使用してデータベースに接続する方法の詳細は、20.6項「データベースへのログイン」を参照してください。 |
デプロイ・ログイン | TopLink対応のアプリケーションがデプロイ時に使用する「定義済ログイン」。 |
Oracle JDeveloperまたはTopLink Workbenchを使用すると、ログインを作成し(20.4項「プロジェクト・レベルでのログイン情報の構成」を参照)、開発ログインとして指定した後(20.5項「開発ログインおよびデプロイ・ログインの構成」を参照)、データベース・インスタンスにログインできます。
表情報をインポートまたはエクスポートする前に、データベースにログインする必要があります。
TopLink Workbenchを使用してデータベースにログインするには、次の手順のいずれかを実行します。
ナビゲータでデータベース・オブジェクトを選択し、「ログイン」をクリックします。TopLink Workbenchがデータベースにログインします。
ナビゲータでデータベース・オブジェクトを右クリックしてコンテキスト・メニューから「データベースにログイン」を選択するか、メニューから「選択」→「データベースにログイン」を選択します。
ナビゲータ・ウィンドウの「データベース」アイコンが変更され、データベースにログインしたことが示されます。
すべての名前付き問合せおよびファインダに対して、パラメータ使用のSQL(パラメータ・バインド)およびプリコンパイルされたSQL文のキャッシュを使用するようTopLinkを構成できます。
デフォルトでは、TopLinkはパラメータ使用のSQLを使用します。
パラメータ使用のSQLを使用して、1つ以上のバインドされたパラメータを除いて完全な問合せを作成し、格納することができます。TopLinkランタイムは、問合せの実行時に現在のパラメータ値をバインドします。この方法ではSQL実行のプリコンパイルが不要なため、頻繁に実行されるSQL文のパフォーマンスが向上します。
この項では、プロジェクト・レベルでのパラメータ使用のSQLおよびSQL文のキャッシュのオプションの構成について説明します。この構成は、このプロジェクトのディスクリプタに作成したすべての名前付き問合せまたはファインダに適用され(108.8項「名前付き問合せ」または108.15項「EJB 2.n CMPファインダ」を参照)、一般操作または書込み操作のすべての問合せに適用されるものではありません。
名前付き問合せレベルまたはファインダ・レベルでパラメータ使用のSQLおよびSQL文のキャッシュのオプションを構成して、このプロジェクト・レベルの構成を問合せ単位(119.7.1.9項「名前付き問合せのオプションの構成」を参照)、またはセッション・ログイン・レベル(98.6項「JDBCオプションの構成」を参照)でオーバーライドすることもできます。
詳細は、12.11.5項「パラメータ使用のSQL(パラメータ・バインド)とプリコンパイルされたSQL文のキャッシュを使用した最適化方法」を参照してください。
注意: Java EEデータ・ソースまたは外部接続プールを使用するアプリケーションでは、TopLinkにおいてではなくJava EEサーバーのデータ・ソースにおいて、文のキャッシュを構成する必要があります。 |
表20-2では、どのプロジェクトがパラメータ使用のSQLおよびSQL文のキャッシュ構成をサポートしているかを示します。
表20-2 プロジェクトでのデフォルト名前付き問合せのキャッシュおよびバインドのサポート
ディスクリプタ | Oracle JDeveloperの使用方法 | TopLink Workbenchを使用したプロジェクト・レベルでの名前付き問合せパラメータ使用のSQLおよびSQL文のキャッシュの構成方法 |
Javaの使用方法 |
---|---|---|---|
リレーショナル・プロジェクト |
|
|
|
EISプロジェクト |
|||
XMLプロジェクト |
名前付き問合せオプションを指定するには、次の手順を実行します。
ナビゲータでプロジェクト・オブジェクトを選択します。
エディタで「デフォルト」タブを選択します。「デフォルト」タブが表示されます。
次の表を使用して、「デフォルト」タブの次のフィールドにデータを入力し、新規に作成されたディスクリプタに対して名前付き問合せオプションを指定します。
フィールド | 説明 |
---|---|
すべての文をキャッシュ | TopLink文のキャッシュ内で問合せのプリコンパイルされたSQL文をキャッシュします。 |
すべてのパラメータのバインド | デフォルトでは、TopLinkは問合せのパラメータをすべてバインドします。
このオプションの選択を解除し、バインドを無効にします。 |
TopLink Workbenchを使用して、TopLink Workbenchプロジェクトで定義するディスクリプタからデータベース表を生成する際に適用されるオプションを構成できます。結果の表および列は、プロジェクトのターゲット・データベースのネーミング規則に準拠します。
デフォルトの表生成のオプションを指定するには、次の手順を実行します。
ナビゲータでプロジェクト・オブジェクトを選択します。
エディタで「オプション」タブを選択します。「オプション」タブが表示されます。
次の表を使用して、各フィールドにデータを入力し、デフォルトのエクスポートおよび生成のオプションを指定します。
フィールド | 説明 |
---|---|
デフォルトの主キー | 主キーの生成時に使用されるデフォルト名を入力します。 |
主キー検索パターン | 主キーの生成時に使用されるデフォルト検索パターンを入力します。 |
TopLink Workbenchを使用して、データベース表の作成に使用できるJavaソース・コードをエクスポートする際に適用されるオプションを構成できます。
デフォルトのJavaコード生成のオプションを指定するには、次の手順を実行します。
ナビゲータでプロジェクト・オブジェクトを選択します。
エディタで「オプション」タブを選択します。「オプション」タブが表示されます。
次の表を使用して、各フィールドにデータを入力し、デフォルトの表作成のオプションを指定します。
フィールド | 説明 |
---|---|
クラス名 | プロジェクトから表のJavaソース・コードを生成する際に使用するベース・クラス名。 |
ルート・ディレクトリ | 生成されたソース・コードを格納するディレクトリ。 |
TopLink Workbenchを使用して、プロジェクトをJavaソースとしてエクスポートできます。プロジェクトをJavaソース・コードにエクスポートする際にTopLink Workbenchが使用するクラス名およびルート・ディレクトリを構成できます。
Javaソースとしてのプロジェクトのエクスポートの詳細は、19.6.1項「TopLink Workbenchを使用したプロジェクトJavaソースのエクスポート方法」を参照してください。
デフォルトのJavaコード生成のオプションを指定するには、次の手順を実行します。
ナビゲータでプロジェクト・オブジェクトを選択します。
エディタで「オプション」タブを選択します。「オプション」タブが表示されます。
次の表を使用して、各フィールドにデータを入力し、デフォルトのエクスポートおよび生成オプションを指定します。
フィールド | 説明 |
---|---|
クラス名 | プロジェクトからJavaソース・コードを生成する際に使用するベース・クラス名 |
ルート・ディレクトリ | 生成されたソース・コードを格納するディレクトリ。 |
Oracle JDeveloperまたはTopLink Workbenchを使用する場合は、非推奨のダイレクト・マッピングのオプションを構成できます。
TopLinkでは、リリース10.1.3.1から次のダイレクト・マッピング・タイプは使用されません。
タイプ変換
オブジェクト・タイプ
シリアライズ・オブジェクト
かわりに、TopLinkでは特殊なコンバータによって、フィールドへ直接マッピングを使用します。
下位互換性のあるデプロイXMLファイルおよびJavaソース・コード・ファイルを生成するには、「推奨されないダイレクト・マッピングの生成」オプションを使用します。
プロジェクトをエクスポートする際、TopLink Workbenchで(コンバータを使用するのではなく)非推奨のダイレクト・マッピングを生成する必要があると指定するには、次の手順を実行します。
ナビゲータでプロジェクト・オブジェクトを選択します。
エディタで「オプション」タブを選択します。「オプション」タブが表示されます。
タブの「推奨されないダイレクト・マッピングの生成」オプションを選択し、TopLink Workbenchが(コンバータではなく非推奨のダイレクト・マッピングを使用して)下位互換性のあるコードを生成する必要があることを指定します。