Package org.iplass.mtp.entity.bulkupdate
Class FunctionalEntityStream
java.lang.Object
org.iplass.mtp.entity.bulkupdate.FunctionalEntityStream
- All Implemented Interfaces:
AutoCloseable
,Iterable<BulkUpdateEntity>
,BulkUpdatable
ラムダ式を利用してBulkUpdatableを構築するためのクラス。
以下のような使い方。
EntityManager em = ... Listoids = 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 Summary
-
Method Summary
Modifier and TypeMethodDescriptionバルク更新(INSERT時)の際、EntityにcreateBy,createDate,updateBy,updateDateの値を 指定してその値のまま登録するように指定します。 このフラグを利用する場合、 当該処理を呼び出すユーザーがadmin権限を保持している必要があります。void
close()
BulkUpdatableのクローズ処理を記述。definitionName
(String definitionName) Entityの定義名を指定バルク更新対象のEntity定義名を返却するように実装。バルク更新(UPDATEおよびMERGEで更新と判断された場合)の際の更新対象のプロパティを指定する。 未指定(null)の場合は全項目を更新対象と判断。boolean
バルク更新(INSERT時)の際、EntityにcreateBy,createDate,updateBy,updateDateの値を 指定してその値のまま登録する場合にtrueを指定します。 デフォルトはfalseです。 このフラグを利用する場合、 当該処理を呼び出すユーザーがadmin権限を保持している必要があります。iterator()
BulkUpdatableのクローズ処理を記述。onNext
(Supplier<BulkUpdateEntity> onNext) BulkUpdateEntityを取得するロジックを記述。 処理対象のBulkUpdateEntityが既にない場合はnullを返却するように実装。onUpdated
(Consumer<BulkUpdateEntity> onUpdated) 更新処理成功後のコールバック処理を記述可能。void
updated
(BulkUpdateEntity updatedEntity) バルク更新対象のEntityの更新処理が成功した場合呼び出されるコールバック。updateProperties
(String... propName) 更新時の更新対象プロパティを指定Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
FunctionalEntityStream
public FunctionalEntityStream()
-
-
Method Details
-
onNext
BulkUpdateEntityを取得するロジックを記述。 処理対象のBulkUpdateEntityが既にない場合はnullを返却するように実装。- Parameters:
onNext
-- Returns:
-
definitionName
Entityの定義名を指定- Parameters:
definitionName
-- Returns:
-
updateProperties
更新時の更新対象プロパティを指定- Parameters:
propName
-- Returns:
-
auditPropertySpecified
バルク更新(INSERT時)の際、EntityにcreateBy,createDate,updateBy,updateDateの値を 指定してその値のまま登録するように指定します。 このフラグを利用する場合、 当該処理を呼び出すユーザーがadmin権限を保持している必要があります。- Returns:
-
onClose
BulkUpdatableのクローズ処理を記述。- Parameters:
onClose
-- Returns:
-
onUpdated
更新処理成功後のコールバック処理を記述可能。- Parameters:
onUpdated
-- Returns:
-
iterator
- Specified by:
iterator
in interfaceIterable<BulkUpdateEntity>
-
getDefinitionName
Description copied from interface:BulkUpdatable
バルク更新対象のEntity定義名を返却するように実装。- Specified by:
getDefinitionName
in interfaceBulkUpdatable
- Returns:
-
isEnableAuditPropertySpecification
public boolean isEnableAuditPropertySpecification()Description copied from interface:BulkUpdatable
バルク更新(INSERT時)の際、EntityにcreateBy,createDate,updateBy,updateDateの値を 指定してその値のまま登録する場合にtrueを指定します。 デフォルトはfalseです。 このフラグを利用する場合、 当該処理を呼び出すユーザーがadmin権限を保持している必要があります。- Specified by:
isEnableAuditPropertySpecification
in interfaceBulkUpdatable
- Returns:
-
updated
Description copied from interface:BulkUpdatable
バルク更新対象のEntityの更新処理が成功した場合呼び出されるコールバック。- Specified by:
updated
in interfaceBulkUpdatable
- Parameters:
updatedEntity
-
-
close
public void close()Description copied from interface:BulkUpdatable
BulkUpdatableのクローズ処理を記述。- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceBulkUpdatable
-
getUpdateProperties
Description copied from interface:BulkUpdatable
バルク更新(UPDATEおよびMERGEで更新と判断された場合)の際の更新対象のプロパティを指定する。 未指定(null)の場合は全項目を更新対象と判断。- Specified by:
getUpdateProperties
in interfaceBulkUpdatable
- Returns:
-