Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

@Access の使用法

これらの 3 つのクラスはそれぞれ @Access アノテーションを使用して、データベース・スキーマの生成を制御します。このアノテーションによって、データベース・スキーマのフィールドで Java クラスのどの要素を表現するかが Jalapeño に通知されます。アノテーションを使用するために各クラスで com.jalapeno.annotations をインポートします。

ContactPhoneNumber では、以下の同じ @Access アノテーションを使用します。

  • type=AccessType.FIELD

  • level=AccessLevel.PRIVATE

この指定により、SchemaBuilder は、private と同等またはそれ以下のアクセス・レベル制限を適用して、Contact および PhoneNumber の各フィールドに対応するプロパティを Caché オブジェクト・スキーマに生成します。したがって、この場合、ContactPhoneNumber のすべてのフィールドがデータベース・スキーマで表現されます。クラス定義の関連する部分は以下のようになります。

Contact


package contacts;
import java.util.ArrayList;
import java.util.List;
import com.jalapeno.annotations.*;

@Access(type = AccessType.FIELD, level = AccessLevel.PRIVATE)
public class Contact {
...

PhoneNumber


package contacts;
import com.jalapeno.annotations.*;
 
@Access(type = AccessType.FIELD,level = AccessLevel.PRIVATE)
public class PhoneNumber {
...
 

Address の場合は異なります。Address では、@Access アノテーションに以下の要素値を使用します。

  • type=AccessType.PROPERTY

AccessType.PROPERTY 値を指定すると、SchemaBuilder ではフィールドではなく、クラスの get メソッドおよび set メソッドを使用してオブジェクト・スキーマのプロパティを生成します。例えば、AddresssetCity メソッドを含みます。このメソッドから、対応するデータベース・スキーマに City プロパティが生成されます。アノテーションは、level プロパティを定義しません。したがって、SchemaBuilder のプロパティ・ファイルで指定されている値が使用されます。ただし、すべてのアクセサ・メソッドは public なので、このファイルで指定されている level 値に関係なく、SchemaBuilder ではそれぞれに対応するフィールドをデータベース・スキーマに生成します。関連するコードは以下のとおりです。

Address


package contacts;
import com.jalapeno.annotations.*;

@Access (type = AccessType.PROPERTY)
public class Address{
...

FeedbackOpens in a new tab