Class FunctionalEntityStream

java.lang.Object
org.iplass.mtp.entity.bulkupdate.FunctionalEntityStream
All Implemented Interfaces:
AutoCloseable, Iterable<BulkUpdateEntity>, BulkUpdatable

public class FunctionalEntityStream extends Object implements BulkUpdatable
ラムダ式を利用してBulkUpdatableを構築するためのクラス。 以下のような使い方。
 EntityManager em = ...
 
 List oids = new ArrayListinvalid input: '<'>();
 long[] counter = {0};
 em.bulkUpdate(BulkUpdatable.as("TargetEntity").onNext(() -> {
     //onNextで次の1件のBulkUpdateEntityを返却するように実装
     if (counter[0] >= 100) {
       //処理対象が終了した場合は、nullを返却
       return null;
     }
     GenericEntity ret = new GenericEntity("TargetEntity");
     ret.setName("hoge");
     counter[0]++;
     return new BulkUpdateEntity(UpdateMethod.INSERT, ret);
   }).onUpdated(bue -> {
     //onUpdatedは、更新処理後のコールバック処理を記述可能(オプション)
     oids.add(bue.getEntity().getOid());
   }).onClose(() -> {
     //onCloseは、BulkUpdatableのクローズ処理を記述可能(オプション)
     doSomething...
   }));
 
 
  • Constructor Details

    • FunctionalEntityStream

      public FunctionalEntityStream()
  • Method Details

    • onNext

      BulkUpdateEntityを取得するロジックを記述。 処理対象のBulkUpdateEntityが既にない場合はnullを返却するように実装。
      Parameters:
      onNext -
      Returns:
    • definitionName

      public FunctionalEntityStream definitionName(String definitionName)
      Entityの定義名を指定
      Parameters:
      definitionName -
      Returns:
    • updateProperties

      public FunctionalEntityStream updateProperties(String... propName)
      更新時の更新対象プロパティを指定
      Parameters:
      propName -
      Returns:
    • auditPropertySpecified

      public FunctionalEntityStream auditPropertySpecified()
      バルク更新(INSERT時)の際、EntityにcreateBy,createDate,updateBy,updateDateの値を 指定してその値のまま登録するように指定します。 このフラグを利用する場合、 当該処理を呼び出すユーザーがadmin権限を保持している必要があります。
      Returns:
    • onClose

      public FunctionalEntityStream onClose(Runnable onClose)
      BulkUpdatableのクローズ処理を記述。
      Parameters:
      onClose -
      Returns:
    • onUpdated

      public FunctionalEntityStream onUpdated(Consumer<BulkUpdateEntity> onUpdated)
      更新処理成功後のコールバック処理を記述可能。
      Parameters:
      onUpdated -
      Returns:
    • iterator

      public Iterator<BulkUpdateEntity> iterator()
      Specified by:
      iterator in interface Iterable<BulkUpdateEntity>
    • getDefinitionName

      public String getDefinitionName()
      Description copied from interface: BulkUpdatable
      バルク更新対象のEntity定義名を返却するように実装。
      Specified by:
      getDefinitionName in interface BulkUpdatable
      Returns:
    • isEnableAuditPropertySpecification

      public boolean isEnableAuditPropertySpecification()
      Description copied from interface: BulkUpdatable
      バルク更新(INSERT時)の際、EntityにcreateBy,createDate,updateBy,updateDateの値を 指定してその値のまま登録する場合にtrueを指定します。 デフォルトはfalseです。 このフラグを利用する場合、 当該処理を呼び出すユーザーがadmin権限を保持している必要があります。
      Specified by:
      isEnableAuditPropertySpecification in interface BulkUpdatable
      Returns:
    • updated

      public void updated(BulkUpdateEntity updatedEntity)
      Description copied from interface: BulkUpdatable
      バルク更新対象のEntityの更新処理が成功した場合呼び出されるコールバック。
      Specified by:
      updated in interface BulkUpdatable
      Parameters:
      updatedEntity -
    • close

      public void close()
      Description copied from interface: BulkUpdatable
      BulkUpdatableのクローズ処理を記述。
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface BulkUpdatable
    • getUpdateProperties

      public List<String> getUpdateProperties()
      Description copied from interface: BulkUpdatable
      バルク更新(UPDATEおよびMERGEで更新と判断された場合)の際の更新対象のプロパティを指定する。 未指定(null)の場合は全項目を更新対象と判断。
      Specified by:
      getUpdateProperties in interface BulkUpdatable
      Returns: