パッケージ org.iplass.mtp.entity

インタフェース EntityManager

すべてのスーパーインタフェース:
Manager

public interface EntityManager extends Manager

Entityを管理するクラスのインタフェースです。 EntityManagerを利用し、定義されているEntityのデータのCRUD操作が可能です。

EntityManager操作中に、例外が発生した場合のトランザクションに関する挙動は次の形となります。

  • SystemExceptionおよびRuntime例外、エラー:トランザクションは自動的にsetRollbackOnlyに設定される
  • ApplicationException:参照メソッド(load,searchなど)では、トランザクションはsetRollbackOnlyに設定されない。更新系メソッドでは自動的にsetRollbackOnlyに設定される

  • メソッドの詳細

    • validate

      ValidateResult validate(Entity entity)
      指定のEntityの検証を行います。
      パラメータ:
      entity - 検証対象のEntity
      戻り値:
      検証結果
    • validate

      ValidateResult validate(Entity entity, List<String> properties)
      指定のEntityの指定のプロパティの検証を行います。
      パラメータ:
      entity - 検証対象のEntity
      properties - 検証対象のプロパティ名のリスト
      戻り値:
      検証結果
    • searchEntity

      <T extends Entity> SearchResult<T> searchEntity(Query query)
      指定の条件で検索します。
      パラメータ:
      query - 検索条件
      戻り値:
      検索条件に一致したデータのリスト
    • searchEntity

      <T extends Entity> SearchResult<T> searchEntity(Query query, SearchOption option)
      指定の条件で検索します。
      パラメータ:
      query - 検索条件
      option - 検索処理のオプション指定
      戻り値:
    • searchEntity

      <T extends Entity> void searchEntity(Query query, Predicate<T> callback)
      指定の条件で検索します。 データ件数が多い場合、取得したデータを一括でロードせずに、1件ずつロードします。 ロードしたデータは、callbackに渡されます。
      パラメータ:
      query - 検索条件
      callback - 順次読み込んだデータを受けるコールバック処理
    • searchEntity

      <T extends Entity> void searchEntity(Query query, SearchOption option, Predicate<T> callback)
      指定の条件で検索します。 データ件数が多い場合、取得したデータを一括でロードせずに、1件ずつロードします。 ロードしたデータは、callbackに渡されます。
      optionでは、SearchOption.unnotifyListeners()の設定のみ有効です。その他の設定は本メソッド呼び出しでは無視されます。
      パラメータ:
      query - 検索条件
      option - 検索処理のオプション指定
      callback - 順次読み込んだデータを受けるコールバック処理
    • search

      SearchResult<Object[]> search(Query query)
      Entityの形ではない、汎用的な検索(複数Entityをまたいだ集計クエリー等)を行うための検索メソッドです。
      パラメータ:
      query - 検索条件
      戻り値:
      queryに指定されたselect句の項目を保持するObject[]
    • search

      SearchResult<Object[]> search(Query query, SearchOption option)
      指定の条件で検索します。 Entityの形ではない、汎用的な検索(複数Entityをまたいだ集計クエリー等)を行うための検索メソッドです。
      パラメータ:
      query - 検索条件
      option - 検索処理のオプション指定
      戻り値:
    • search

      void search(Query query, Predicate<Object[]> callback)
      Entityの形ではない、汎用的な検索(複数Entityをまたいだ集計クエリー等)を行うためのメソッドです。 データ件数が多い場合に利用可能で、取得したデータを一括でロードせずに1件ずつロードするためのメソッドです。 ロードしたデータは、callbackに渡されます。
      パラメータ:
      query - 検索条件
      callback - 順次読み込んだデータを受けるコールバック処理
    • search

      void search(Query query, SearchOption option, Predicate<Object[]> callback)
      Entityの形ではない、汎用的な検索(複数Entityをまたいだ集計クエリー等)を行うためのメソッドです。 データ件数が多い場合に利用可能で、取得したデータを一括でロードせずに1件ずつロードするためのメソッドです。 ロードしたデータは、callbackに渡されます。
      optionでは、SearchOption.unnotifyListeners()の設定のみ有効です。その他の設定は本メソッド呼び出しでは無視されます。
      パラメータ:
      query - 検索条件
      option - 検索処理のオプション指定
      callback - 順次読み込んだデータを受けるコールバック処理
    • count

      int count(Query query)
      検索件数を取得します。
      パラメータ:
      cond - 検索条件
      戻り値:
      実検索件数
    • load

      Entity load(String oid, String definitionName)
      指定のoid(Entityオブジェクトを一意に特定するID)で特定されるデータを取得します。 取得するプロパティは、Entityに定義されているもの全てを取得します。 ReferencePropertyが定義されている場合は、 当該プロパティにはoidとnameが格納されたEntityのインスタンスが格納されます。 ReferencePropertyが指定されている場合で、そのプロパティが複数可の場合は、 当該プロパティはEntity[]の形で取得されます。
      パラメータ:
      oid - オブジェクトID
      definitionName - Entity定義名
      戻り値:
      oidで指定されるデータ
    • load

      Entity load(String oid, Long version, String definitionName)
      指定のoid(Entityオブジェクトを一意に特定するID)、versionで特定されるデータを取得します。 取得するプロパティは、Entityに定義されているもの全てを取得します。 ReferencePropertyが定義されている場合は、 当該プロパティにはoidとnameが格納されたEntityのインスタンスが格納されます。 ReferencePropertyが指定されている場合で、そのプロパティが複数可の場合は、 当該プロパティはEntity[]の形で取得されます。
      パラメータ:
      oid - オブジェクトID
      version - バージョン番号
      definitionName - Entity定義名
      戻り値:
      oid,versionで指定されるデータ
    • load

      Entity load(String oid, String definitionName, LoadOption option)
      指定のoid(Entityオブジェクトを一意に特定するID)で特定されるデータを取得します。 取得するプロパティは、optionにて指定されたものです。
      パラメータ:
      oid - オブジェクトID
      definitionName - Entity定義名
      option - 読込オプション、読み込むプロパティを指定可能
      戻り値:
      oidで指定されるデータ
    • load

      Entity load(String oid, Long version, String definitionName, LoadOption option)
      指定のoid(Entityオブジェクトを一意に特定するID)、versionで特定されるデータを取得します。 取得するプロパティは、optionにて指定されたものです。
      パラメータ:
      oid - オブジェクトID
      version - バージョン番号
      definitionName - Entity定義名
      option - 読込オプション、読み込むプロパティを指定可能
      戻り値:
      oid,versionで指定されるデータ
    • loadAndLock

      Entity loadAndLock(String oid, String definitionName)
      指定のoid(Entityオブジェクトを一意に特定するID)で一意に特定されるデータを取得し、更新ロックします。 ロックは、トランザクション終了まで保持されます。
      パラメータ:
      oid - オブジェクトID
      definitionName - Entity定義名
      戻り値:
      oidで指定されるデータ
    • loadAndLock

      Entity loadAndLock(String oid, String definitionName, LoadOption option)
      指定のoid(Entityオブジェクトを一意に特定するID)で一意に特定されるデータを取得し、更新ロックします。 ロックは、トランザクション終了まで保持されます。 取得するプロパティは、optionにて指定されたものです。
      パラメータ:
      oid - オブジェクトID
      definitionName - Entity定義名
      option - 読込オプション、読み込むプロパティを指定可能
      戻り値:
      oidで指定されるデータ
    • batchLoad

      List<Entity> batchLoad(List<EntityKey> keys, String definitionName)
      指定のEntityキー情報で特定されるデータを取得します。 取得するプロパティは、Entityに定義されているもの全てを取得します。 ReferencePropertyが定義されている場合は、 当該プロパティにはoidとnameが格納されたEntityのインスタンスが格納されます。 ReferencePropertyが指定されている場合で、そのプロパティが複数可の場合は、 当該プロパティはEntity[]の形で取得されます。
      パラメータ:
      keys - Entityキー情報
      definitionName - Entity定義名
      戻り値:
      キー情報で指定されるデータ
    • batchLoad

      List<Entity> batchLoad(List<EntityKey> keys, String definitionName, LoadOption option)
      指定のEntityキー情報で特定されるデータを取得します。 取得するプロパティは、optionにて指定されたものです。
      パラメータ:
      keys - Entityキー情報
      definitionName - Entity定義名
      option - 読込オプション、読み込むプロパティを指定可能
      戻り値:
      キー情報で指定されるデータ
    • insert

      String insert(Entity entity)
      指定の引数のentityを追加します。 entityにoid(オブジェクトID)が設定されていても必ず新しいIDで採番されます。
      パラメータ:
      entity - 追加対象のデータ
      戻り値:
      オブジェクトID
    • insert

      String insert(Entity entity, InsertOption option)
      指定の引数のentityを追加します。
      パラメータ:
      entity - 追加対象のデータ
      \u8ffd\u52a0\u6642\u306e\u8ffd\u52a0\u65b9\u6cd5\u306b\u95a2\u3059\u308b\u6307\u5b9a -
      戻り値:
      オブジェクトID
    • update

      void update(Entity entity, UpdateOption option)
      引数のentityを更新します。
      パラメータ:
      entity - 更新対象のデータ
      option - 更新時の更新方法に関する指定
      例外:
      EntityConcurrentUpdateException - 更新対象のデータが存在しない場合、同時更新が発生した場合
    • delete

      void delete(Entity entity, DeleteOption option)
      引数のentityに設定されたoid(オブジェクトID)で一意に特定されるデータを削除します。
      パラメータ:
      entity - 削除対象のデータ
      option - 削除時に削除方法に関する指定
      例外:
      EntityConcurrentUpdateException - 削除対象のデータが存在しない場合、同時更新が発生した場合
    • updateAll

      int updateAll(UpdateCondition cond)
      引数のcondに一致するデータを設定された値にて一括更新します。 タイムスタンプチェックなどは行いません。 別のデータ(親オブジェクトなど)で一貫性を保障した上での、ステータス情報の一括更新等の用途を想定しています。 ReferencePropertyの更新は不可です。 updateAllでは、Entityの更新イベントは発生しません。
      パラメータ:
      cond - 更新対象のデータを指定する条件
      戻り値:
      更新件数
    • deleteAll

      int deleteAll(DeleteCondition cond)
      引数のcondに一致するデータを一括で削除します。 タイムスタンプチェックなどは行いません。 別のデータ(親オブジェクトなど)で一貫性を保障した上での、一括削除操作を想定しています。 deleteAllでは、Entityの削除イベントは発生しません。
      パラメータ:
      cond - 削除対象のデータを指定する条件
      戻り値:
      削除件数
    • bulkUpdate

      void bulkUpdate(BulkUpdatable bulkUpdatable)
      bulkUpdatableで指定される一連のEntityを一括で更新(Insert/Update/Delete)します。 更新処理の際は、EntityEventListenerの呼び出しや、Validation、タイムスタンプチェック、CascadeDelete処理などは実行されません。 外部のマスタデータの取り込み、初期データImportなどの用途での利用を想定しています。 bulkUpdatableのclose()は処理後(もしくは例外発生後)、当メソッド内で呼び出されます。
      bulkUpdate()を呼び出す実行ユーザーは当該Entityに対して登録、更新、削除権限を範囲条件なしに保有している必要があります。
      更新、削除時には対象とするEntityのoidを指定してください。また、バージョン管理が有効の場合はversionの値も明示的に指定する必要があります。
      注意
      Binary型、LongText型、AutoNumber型を利用している場合、bulkUpdate利用によっても高速化は望めない場合があります。
      また、BulkUpdateEntity.UpdateMethod.MERGEを利用している場合、bulkUpdate利用によっても高速化は望めない場合があります。
      パラメータ:
      bulkUpdatable -
    • loadBinaryReference

      BinaryReference loadBinaryReference(long lobId)
      引数で指定されるBinaryReferenceを取得します。
      パラメータ:
      lobId -
      戻り値:
      BinaryReference
    • createBinaryReference

      BinaryReference createBinaryReference(String name, String type, InputStream is)
      BinaryReferenceを新規に作成します。 引数のisのデータを同時にバイナリデータとして書き込みます。
      isがnullの場合は、バイナリデータが空の状態で新規に作成されます。 書き込みは別途getOutputStream(BinaryReference)メソッドを介して、行うことが可能です。
      作成されたBinaryReferenceはまだEntityに紐付いていない状態です。 引数のisはBinaryReference作成後、当メソッド内でcloseします。
      パラメータ:
      name -
      type -
      is -
      戻り値:
    • createBinaryReference

      BinaryReference createBinaryReference(File file, String name, String type)
      BinaryReferenceを新規に作成します。 引数のfileのデータを同時にバイナリデータとして書き込みます。
      作成されたBinaryReferenceはまだEntityに紐付いていない状態です。
      nameが未指定の場合は、fileの名前がnameに指定されます。 typeが未指定の場合は、fileの拡張子からmimetypeが解決されます。
      パラメータ:
      file -
      name -
      type -
      戻り値:
    • getInputStream

      InputStream getInputStream(BinaryReference binaryReference)
      引数で指定されたBinaryReferenceのバイナリデータを取得するためのInputStreamを取得します。
      パラメータ:
      binaryReference -
      戻り値:
    • getOutputStream

      OutputStream getOutputStream(BinaryReference binaryReference)
      引数で指定されたBinaryReferenceのバイナリデータを書き込むためのOutputStreamを取得します。 OutputStramは利用終了したら必ずclose()してください。
      パラメータ:
      binaryReference -
      戻り値:
    • lockByUser

      boolean lockByUser(String oid, String definitionName)
      現在、当該メソッドを呼び出しているユーザーにて、 指定のEntityをデータをロックします。 ユーザーによるロックはunlockByUser()メソッドにて明示的に開放しない限り、 トランザクションを終了してもロックは保持されます。
      パラメータ:
      oid - オブジェクトID
      definitionName - Entity定義名
      戻り値:
      ロックできた場合true
    • unlockByUser

      boolean unlockByUser(String oid, String definitionName)
      ユーザーにてロックされているEntityのデータのロックを解除します。
      パラメータ:
      oid - オブジェクトID
      definitionName - Entity定義名
      戻り値:
    • purge

      void purge(long recycleBinId, String definitionName)
      ごみ箱から、削除します。 recycleBinIdは、ごみ箱内のデータを一意に特定するidです(oidは重複する可能性があるため)。
      purge()を呼び出す実行ユーザーは当該Entityに対して削除権限を範囲条件なしに保有している必要があります。
      パラメータ:
      recycleBinId - ごみ箱内のデータを一意に特定するid
      definitionName - Entity定義名
    • restore

      Entity restore(long recycleBinId, String definitionName)
      ごみ箱から復活します。
      restore()を呼び出す実行ユーザーは当該Entityに対して削除権限を範囲条件なしに保有しているか、 もしくは自身がごみ箱に格納したEntityである必要があります。
      パラメータ:
      recycleBinId - ごみ箱内のデータを一意に特定するid
      definitionName - Entity定義名
    • getRecycleBin

      void getRecycleBin(String definitionName, Predicate<Entity> callback)
      ごみ箱の中身のリストを取得します。 取得可能なものは、recycleBinId,oid,nameのみです。 recycleBinIdは、ごみ箱内のデータを一意に特定するid。(oidは重複する可能性があるため)
      パラメータ:
      definitionName - Entity定義名
      callback -
    • getRecycleBin

      Entity getRecycleBin(long recycleBinId, String definitionName)
      ごみ箱の中身から、指定のrecycleBinIdで特定される1件を取得します。
      パラメータ:
      recycleBinId -
      definitionName -
      戻り値:
    • getCurrentTimestamp

      Timestamp getCurrentTimestamp()
      現在の時間を取得します。 取得される値は、実時間ではなく、あらかじめ設定されたシステム時間である場合もあります。
      戻り値:
      現在時間(もしくは事前に設定されたプレビュー時間)
    • deepCopy

      Entity deepCopy(String oid, String definitionName)
      指定のoid(オブジェクトID)で一意に特定されるデータを取得し、参照先を含めたコピーを行います。 親子関係の参照先のエンティティはoidが新たに採番され、 通常の参照の場合、被参照ならコピー対象外になり、被参照でなければそのまま参照されます。 また制約として、変更不可の項目についてはコピー後に変更はできなくなり、 文字列以外のプロパティでユニーク指定されている場合はコピー自体ができません。
      パラメータ:
      oid - オブジェクトID
      definitionName - Entity定義名
      戻り値:
      コピーされたデータ
    • deepCopy

      Entity deepCopy(String oid, String definitionName, DeepCopyOption option)
      指定のoid(オブジェクトID)で一意に特定されるデータを取得し、参照先を含めたコピーを行います。 親子関係の参照先のエンティティはoidが新たに採番され、 通常の参照の場合、被参照ならコピー対象外になり、被参照でなければそのまま参照されます。 また制約として、変更不可の項目についてはコピー後に変更はできなくなり、 文字列以外のプロパティでユニーク指定されている場合はコピー自体ができません。
      パラメータ:
      oid - オブジェクトID
      definitionName - Entity定義名
      option - コピー時のオプション
      戻り値:
      コピーされたデータ
    • fulltextSearchEntity

      <T extends Entity> SearchResult<T> fulltextSearchEntity(String definitionName, String keyword)
      指定のワードで全文検索します。 defNameが未指定の場合は利用テナントの全エンティティに対して全文検索を実施します。
      パラメータ:
      definitionName - Entity定義名
      keyword - 全文検索用キーワード
      戻り値:
      検索キーワードを含むエンティティデータのリスト
    • fulltextSearchOidList

      List<String> fulltextSearchOidList(String definitionName, String keyword)
      指定のワードで全文検索し、oidのリストを取得します。 definitionName、keywordは必須。未指定の場合は空のリストを返却します。
      パラメータ:
      definitionName - Entity定義名
      keyword - 全文検索用キーワード
      戻り値:
      検索キーワードを含むエンティティデータのoidのリスト
    • fulltextSearchOidList

      Map<String,List<String>> fulltextSearchOidList(List<String> definitionNames, String keyword)
      指定のワードで全文検索し、対象Entity毎のoidリストのMapを取得します。 definitionNames、keywordは必須。未指定の場合は空のMapを返却します。
      パラメータ:
      definitionNames - Entity定義名のリスト
      keyword - 全文検索用キーワード
      戻り値:
      検索キーワードを含むエンティティデータのoidリストのMap
    • fulltextSearchEntity

      <T extends Entity> SearchResult<T> fulltextSearchEntity(Map<String,List<String>> entityProperties, String keyword)
      指定のワードで全文検索し、指定プロパティのみを取得します。 entityPropertiesが未指定の場合は利用テナントの全エンティティに対して全文検索を実施します。
      パラメータ:
      entityProperties - Entity定義毎に取得するプロパティ
      keyword - 全文検索用キーワード
      戻り値:
      検索キーワードを含むエンティティデータのリスト
    • fulltextSearchEntity

      <T extends Entity> SearchResult<T> fulltextSearchEntity(Query query, String keyword, SearchOption option)
      クエリ実行結果に対して、指定のワードで全文検索します。
      メモリを大量消費する恐れがありますので、絞り込む条件とリミット条件を指定した上でご利用してください。
      パラメータ:
      Query - クエリ、Entity.OIDを検索項目として設定する必要が有ります。
      Entity.OIDを指定しないと、空のリストが返されます。
      keyword - 全文検索用キーワード
      戻り値:
      SearchOption 検索時のオプション、countTotal=trueの場合総件数を積み上げる
    • fulltextSearchEntity

      <T extends Entity> SearchResult<T> fulltextSearchEntity(String keyword, FulltextSearchOption option)
      指定のワードで全文検索し、指定プロパティのみを取得します。 FulltextSearchOptionのconditionsが未指定の場合は利用テナントの全エンティティに対して全文検索を実施します。
      パラメータ:
      keyword - 全文検索用キーワード
      option - 全文検索時のオプション
      戻り値:
      検索キーワードを含むエンティティデータのリスト