バンドルされた例外の使用

Transactionインタフェースの次のメソッドをコールすると、検証がコールされるまで例外をバンドルできます。

setBundledExceptionMode(true);

アプリケーションでの属性の設定時、エンティティまたはビュー行の検証で例外が発生した場合、または検証時に例外が明示的にスローされた場合、すべての例外がキャッシュされてスローされます。例外がスローされるとすべての属性が設定されないわけではありません。例外をスローしたすべての属性が元の値のままになります。

例外をスローするかわりに登録することもできます。これらの例外は、検証の最後または明示的に例外がスローされるときにスローされます。

void registerRowException(JboException e)
void clearRowExceptions()

行の検証の場合、次のメソッドを使用して属性が有効かどうかをチェックできます。

boolean hasAttributeException(String name)
boolean hasAttributeException(int index)

次のメソッドを使用すると、キャッシュされた例外にアクセスできます。

boolean hasDeferredExceptions()
ArrayList getAllExceptions()
void clearallExceptions()

JboExceptionには、エンティティ・オブジェクト例外をビュー・オブジェクト例外に変換するメソッドがあります。

public void doEntityToVOMapping(ApplicationModule rootAm, ViewObject[] vos)

例外から取得されるオブジェクト名と属性名は、それぞれビュー・オブジェクト慣用名とビュー属性名を返します。ビュー行からスローされる属性検証の例外は、例外NeedsEntityToVOMappingのフラグをfalseに設定する必要があります。

次の4種類の検証の例外があり、すべてValidationExceptionから拡張されます。

これらの例外は、エンティティ・オブジェクト行またはビュー・オブジェクト行からスローされます。

属性検証の例外をインスタンス化するには、次の情報を渡す必要があります。

行検証の例外をインスタンス化するには、エンティティ・オブジェクト行の完全なエンティティ・オブジェクト定義名またはビュー行のビュー慣用名を渡す必要があります。

このトピックで説明したメソッドの詳細は、Javadocを参照してください。