この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
この章は、次の項で構成されています。
オブジェクト ストアは、データベースの持続化のためにシンプルな API を提供します。データベースへのオブジェクトの持続化を必要とするモジュールは、通常、オブジェクト ストア API を使用してすべての CRUD(作成、読み取り、更新、削除)操作を実行します。
Cisco UCS Director では、データベースとして MySQL を使用します。プラットフォーム ランタイムは、DataNucleus が提供する Java Data Object(JDO)ライブラリを利用して、オブジェクト クエリ表現によってすべての SQL 操作を抽象化します。これにより、データの持続性について開発の簡素化、高速化が可能になります。オブジェクト ストアのマニュアルには、JDO を使用して CRUD 操作を行う方法を示す項も用意されています。
(注) | このマニュアルで、POJO(Plain Old Java Object)という頭字語は、他のクラスを拡張しない、またはインターフェイスを実装しない Java クラスを指しています。 |
データベースで持続的に存在する必要がある POJO クラスは、JDO の適切な注釈を使用して定義し、マーキングする必要があります。次に示すクラスは、JDO の持続性を示すマーキングが付けられています。
このクラスでは、次の点に注意してください。
foo_netapp_filer がクラス宣言の先頭に付加されていること。
使用するテーブルの名前を table 属性で指定していること。
foo はモジュールの名前であること。
持続性が必要なフィールドに @Persistent が付加されていること。
package com.cloupia.lib.cIaaS.netapp.model; @PersistenceCapable(detachable = "true", table = “foo_netapp_filer”) public class NetAppFiler { @Persistent private String filerName; @Persistent private String accountName; @Persistent private String dcName; }
前述のクラスには、@PersistenceCapable と @Persistent の 2 つの注釈が使用されています。これらの持続性は JDO で定義されており、Cisco UCS Director プラットフォーム ランタイムでは、持続的なすべてのクラスがこれら 2 つの注釈でマーキングされると想定しています。JDO ではネストされたスキーマを作成でき、許可されてはいますが、Cisco UCS Director ではフラット スキーマを使用しているため、モジュールにネストされたスキーマを作成することは推奨されません。
次の作業持続性クラスはデータベースに対する CRUD 操作に対応できるようになりました。
JDO の適切な注釈でマーキングされたクラスは公開して、プラットフォーム ランタイムがそのクラスを取得できるようにする必要があります。
持続性クラスでデータベースに対する CRUD 操作を実行できる場合、次の例に示すように、使用可能な各種操作を行うことができます。
NetAppFiler filer = new NetAppFiler(); filer.setAccountName("netapp-account"); filer.setDcName("Default Datacenter"); filer.setfilerName("filer0"); filer.setIpAddress("192.168.0.1"); ObjStore store = ObjStoreHelper.getStore(NetAppFiler.class); store.insert(filer);
ObjStore store = ObjStoreHelper.getStore(NetAppFiler.class); String query = "filerName == 'filer0'"; //Use Java field names as parameter, // can use && , || operators in the query. store.modifySingleObject(query, filer);
ObjStore store = ObjStoreHelper.getStore(NetAppFiler.class); List filerList = store.queryAll();
ObjStore store = ObjStoreHelper.getStore(NetAppFiler.class); String query = "dcName == 'Default Datacenter'"; List filerList = store.query(query);