JPublisherウィザードの「宣言名」フィールドと「使用名」フィールドにより、生成するクラスを自由に拡張できます。「宣言名」フィールドには、指定したデータベース・オブジェクトからJPublisherで生成するクラスの名前を入力します。「使用名」フィールドには、そのデータベース・オブジェクトを表すためにJavaプログラムで使用するクラスの名前を入力します。
「使用名」と「宣言名」が異なるオブジェクト型を公開する場合、JPublisherにより declaration_name
.sqlj
ファイルおよびuse_name
Ref.java
ファイル(use_nameはJavaプログラムでのオブジェクト型)が作成されます。
JPublisherでこの処理を行うには、declaration_nameを拡張するクラスuse_nameが記述されていることが必要です。このクラスを提供しない場合、use_name
Ref.java
ファイルはコンパイルされません。
たとえば、JPublisherでPL/SQLオブジェクト型ADDRESS
からクラスJAddress
を生成すると想定します。また、ADDRESS
オブジェクトを表すクラス、MyAddress
も記述済であるとします。ここではMyAddress
は、JAddress
により提供される機能を拡張する、またはJAddress
フィールドを持つものです。
この場合は、データベース・ブラウザでADDRESS
を選択し、右クリックで「Javaを生成」を選択します。JPublisherウィザードで、「宣言名」フィールドにJAddress
を、「使用名」フィールドにMyAddress
を入力します。JPublisherによりカスタムJavaクラスJAddress
が生成され、ADDRESS
オブジェクトが(JAddress
クラスではなく)MyAddress
クラスに割り当てられます。JAddress
ではなく、MyAddress
に対する参照クラスも生成されます。
JPublisherでは、次のように生成するコードを変更します。
JAddressRef
ではなく、MyAddressRef
というREFクラスを生成します。
ADDRESS
の属性を表すために、JAddress
クラスではなくMyAddress
クラスを使用します。このような状況は、JPublisherにより生成されたクラス、またはユーザーにより記述されたクラスで発生します。
ADDRESS
のVARRAYおよびネストした表を表すために、JAddress
クラスではなくMyAddress
クラスを使用します。
ADDRESS
のJavaオブジェクトの作成にCustomDatumFactory
インタフェースを使用する際、JAddress
ファクトリではなくMyAddress
ファクトリを使用します。このような状況は、JPublisherにより生成されたクラスと、ユーザーにより記述されたクラスの両方で発生します。
ユーザーが作成するクラス(MyAddress.java
など)には、次のような機能が必要です。
CustomDatum
インタフェースを実装する必要があります。スーパークラスからtoDatum()
メソッドを継承するのが最も簡単な方法です。
CustomDatumFactory
インタフェースの実装も必要です。たとえば、CustomDatum
を実装するクラスEmployee
、およびCustomDatumFactory
を実装するクラスEmployeeFactory
などが考えられます。
JPublisherで生成されるクラスの強化
OracleオブジェクトおよびPL/SQLパッケージのJavaソース・コードの生成
Copyright © 1997, 2006, Oracle. All rights reserved.