${database.allClassCopyright}package ${glPackageBaseBhv};\r
-\r
#set ($myClassName = "${myBaseBhvClassName}")\r
\r
import java.util.List;\r
\r
-import ${glPackageBaseCommon}.*;\r
+import org.seasar.dbflute.*;\r
#if (${table.hasOnlyOnePrimaryKey()} && $table.hasReferrerAsMany())\r
-import ${glPackageBaseCommonBhvLoad}.${glLoadReferrerOptionName};\r
-import ${glPackageBaseCommonBhvSetup}.${glConditionBeanSetupperName};\r
+import org.seasar.dbflute.bhv.ConditionBeanSetupper;\r
+import org.seasar.dbflute.bhv.LoadReferrerOption;\r
#end\r
-import ${glPackageBaseCommonBhvSetup}.${glValueLabelSetupperName};\r
+#if ($table.isAvailableNonPrimaryKeyWritable())\r
+import org.seasar.dbflute.bhv.core.command.InsertEntityCommand;\r
+#end\r
+import org.seasar.dbflute.cbean.ConditionBean;\r
+import org.seasar.dbflute.cbean.EntityRowHandler;\r
+import org.seasar.dbflute.cbean.ListResultBean;\r
+import org.seasar.dbflute.cbean.PagingBean;\r
+import org.seasar.dbflute.cbean.PagingHandler;\r
+import org.seasar.dbflute.cbean.PagingInvoker;\r
+import org.seasar.dbflute.cbean.PagingResultBean;\r
+import org.seasar.dbflute.cbean.ResultBeanBuilder;\r
+import org.seasar.dbflute.dbmeta.DBMeta;\r
#if ($database.isMakeFlatExpansion())\r
-import ${glPackageBaseCommonDBMetaHierarchy}.${glHierarchyArrangerName};\r
-import ${glPackageBaseCommonDBMetaHierarchy}.${glHierarchyBasicRequestName};\r
-import ${glPackageBaseCommonDBMetaHierarchy}.${glHierarchyRequestName};\r
-#end\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanInterfaceName};\r
-import ${glPackageBaseCommonCBean}.${glListResultBeanName};\r
-import ${glPackageBaseCommonCBean}.${glResultBeanBuilderName};\r
-import ${glPackageBaseCommonCBean}.${glPagingHandlerName};\r
-import ${glPackageBaseCommonCBean}.${glPagingInvokerName};\r
-import ${glPackageBaseCommonCBean}.${glPagingBeanInterfaceName};\r
-import ${glPackageBaseCommonCBean}.${glPagingResultBeanName};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInterfaceName};\r
+import org.seasar.dbflute.dbmeta.hierarchy.HierarchyArranger;\r
+import org.seasar.dbflute.dbmeta.hierarchy.HierarchyBasicRequest;\r
+import org.seasar.dbflute.dbmeta.hierarchy.HierarchyRequest;\r
+#end\r
+import org.seasar.dbflute.jdbc.StatementConfig;\r
+import ${glPackageBaseCommon}.*;\r
#if (${table.hasOnlyOnePrimaryKey()} && $table.hasReferrerAsMany())\r
import ${glPackageExtendedBhv}.*;\r
#end\r
-import ${glPackageExtendedDao}.*;\r
import ${glPackageExtendedEntity}.*;\r
import ${myDBMetaPackageName}.*;\r
import ${glPackageCB}.*;\r
\r
#set ($myExtendClassName = "")\r
#if ($table.isWritable())\r
- #set ($myExtendClassName = "${glBehaviorWritableAbstractName}")\r
+ #set ($myExtendClassName = "AbstractBehaviorWritable")\r
#else\r
- #set ($myExtendClassName = "${glBehaviorReadableAbstractName}")\r
+ #set ($myExtendClassName = "AbstractBehaviorReadable")\r
#end\r
-\r
/**\r
- * The behavior of ${table.name}.\r
+ * The behavior of ${table.basicInfoDispString}. <br />\r
+#if ($table.isBuriInternal())\r
+ * {Buri Internal}\r
+#end\r
* <pre>\r
* [primary-key]\r
* ${table.primaryKeyNameCommaString}\r
* </pre>\r
* @author ${database.ClassAuthor}\r
*/\r
-public abstract class ${myClassName} extends ${glPackageBaseCommonBhv}.${myExtendClassName} {\r
+public abstract class ${myClassName} extends org.seasar.dbflute.bhv.${myExtendClassName} {\r
\r
// ===================================================================================\r
// Definition\r
${database.behaviorQueryPathEndMark}\r
\r
// ===================================================================================\r
- // Attribute\r
- // =========\r
- protected ${myExtendedDaoClassName} _dao;\r
-\r
- // ===================================================================================\r
// Table name\r
// ==========\r
/** @return The name on database of table. (NotNull) */\r
// ===================================================================================\r
// DBMeta\r
// ======\r
- /** @return The meta data of the database. (NotNull) */\r
- public ${glDBMetaInterfaceName} getDBMeta() { return ${myDBMetaClassName}.getInstance(); }\r
+ /** @return The instance of DBMeta. (NotNull) */\r
+ public DBMeta getDBMeta() { return ${myDBMetaClassName}.getInstance(); }\r
\r
- /** @return The meta data of the database as my table type. (NotNull) */\r
+ /** @return The instance of DBMeta as my table type. (NotNull) */\r
public ${myDBMetaClassName} getMyDBMeta() { return ${myDBMetaClassName}.getInstance(); }\r
\r
// ===================================================================================\r
- // Dao Accessor\r
- // ============\r
- public ${myExtendedDaoClassName} getMyDao() { return _dao; }\r
- public void setMyDao(${myExtendedDaoClassName} dao) { assertObjectNotNull("dao", dao); _dao = dao; }\r
- public ${glDaoReadableInterfaceName} getDaoReadable() { return getMyDao(); }\r
-#if ($table.isWritable())\r
- public ${glDaoWritableInterfaceName} getDaoWritable() { return getMyDao(); }\r
-#end\r
-\r
- // ===================================================================================\r
// New Instance\r
// ============\r
- public ${glEntityInterfaceName} newEntity() { return newMyEntity(); }\r
- public ${glConditionBeanInterfaceName} newConditionBean() { return newMyConditionBean(); }\r
+ public Entity newEntity() { return newMyEntity(); }\r
+ public ConditionBean newConditionBean() { return newMyConditionBean(); }\r
public ${myExtendedObjectClassName} newMyEntity() { return new ${myExtendedObjectClassName}(); }\r
public ${myConditionBeanClassName} newMyConditionBean() { return new ${myConditionBeanClassName}(); }\r
\r
// ===================================================================================\r
+ // Current DBDef\r
+ // =============\r
+ @Override\r
+ protected DBDef getCurrentDBDef() {\r
+ return ${glDBCurrent}.getInstance().currentDBDef();\r
+ }\r
+\r
+ // ===================================================================================\r
+ // Default StatementConfig\r
+ // =======================\r
+ @Override\r
+ protected StatementConfig getDefaultStatementConfig() {\r
+ return ${glDBFluteConfig}.getInstance().getDefaultStatementConfig();\r
+ }\r
+ \r
+ // ===================================================================================\r
// Count Select\r
// ============\r
/**\r
- * Select the count of the condition-bean. {IgnorePagingCondition}\r
+ * Select the count by the condition-bean. {IgnorePagingCondition}\r
* @param cb The condition-bean of ${myExtendedObjectClassName}. (NotNull)\r
* @return The selected count.\r
*/\r
public int selectCount(${myConditionBeanClassName} cb) {\r
- assertConditionBeanNotNull(cb);\r
+ assertCBNotNull(cb);\r
return delegateSelectCount(cb);\r
}\r
+ \r
+ // ===================================================================================\r
+ // Cursor Select\r
+ // =============\r
+ /**\r
+ * Select the cursor by the condition-bean. <br />\r
+ * Attention: It has a mapping cost from result set to entity.\r
+ * @param cb The condition-bean of ${myExtendedObjectClassName}. (NotNull)\r
+ * @param entityRowHandler The handler of entity row of ${myExtendedObjectClassName}. (NotNull)\r
+ */\r
+ public void selectCursor(${myConditionBeanClassName} cb, EntityRowHandler<${myExtendedObjectClassName}> entityRowHandler) {\r
+ assertCBNotNull(cb); assertObjectNotNull("entityRowHandler<${myExtendedObjectClassName}>", entityRowHandler);\r
+ delegateSelectCursor(cb, entityRowHandler);\r
+ }\r
\r
// ===================================================================================\r
// Entity Select\r
* Select the entity by the condition-bean.\r
* @param cb The condition-bean of ${myExtendedObjectClassName}. (NotNull)\r
* @return The selected entity. (Nullalble)\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
+ * @exception org.seasar.dbflute.exception.EntityDuplicatedException When the entity has been duplicated.\r
*/\r
public ${myExtendedObjectClassName} selectEntity(final ${myConditionBeanClassName} cb) {\r
return helpSelectEntityInternally(cb, new InternalSelectEntityCallback<${myExtendedObjectClassName}, ${myConditionBeanClassName}>() {\r
* Select the entity by the condition-bean with deleted check.\r
* @param cb The condition-bean of ${myExtendedObjectClassName}. (NotNull)\r
* @return The selected entity. (NotNull)\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyDeletedException When the entity has already been deleted.\r
+ * @exception org.seasar.dbflute.exception.EntityDuplicatedException When the entity has been duplicated.\r
*/\r
public ${myExtendedObjectClassName} selectEntityWithDeletedCheck(final ${myConditionBeanClassName} cb) {\r
return helpSelectEntityWithDeletedCheckInternally(cb, new InternalSelectEntityWithDeletedCheckCallback<${myExtendedObjectClassName}, ${myConditionBeanClassName}>() {\r
* Select the entity with deleted check. {by primary-key value}\r
* @param primaryKey The keys of primary.\r
* @return The selected entity. (NotNull)\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyDeletedException When the entity has already been deleted.\r
+ * @exception org.seasar.dbflute.exception.EntityDuplicatedException When the entity has been duplicated.\r
*/\r
public ${myExtendedObjectClassName} selectByPKValueWithDeletedCheck(${table.PrimaryKeyArgsString}) {\r
${myExtendedObjectClassName} entity = new ${myExtendedObjectClassName}();\r
* @param cb The condition-bean of ${myExtendedObjectClassName}. (NotNull)\r
* @return The result bean of selected list. (NotNull)\r
*/\r
- public ${glListResultBeanName}<${myExtendedObjectClassName}> selectList(${myConditionBeanClassName} cb) {\r
- assertConditionBeanNotNull(cb);\r
- return new ${glResultBeanBuilderName}<${myExtendedObjectClassName}>(getTableDbName()).buildListResultBean(cb, delegateSelectList(cb));\r
+ public ListResultBean<${myExtendedObjectClassName}> selectList(${myConditionBeanClassName} cb) {\r
+ assertCBNotNull(cb);\r
+ return new ResultBeanBuilder<${myExtendedObjectClassName}>(getTableDbName()).buildListResultBean(cb, delegateSelectList(cb));\r
}\r
\r
// ===================================================================================\r
* @param cb The condition-bean of ${myExtendedObjectClassName}. (NotNull)\r
* @return The result bean of selected page. (NotNull)\r
*/\r
- public ${glPagingResultBeanName}<${myExtendedObjectClassName}> selectPage(final ${myConditionBeanClassName} cb) {\r
- assertConditionBeanNotNull(cb);\r
- final ${glPagingInvokerName}<${myExtendedObjectClassName}> invoker = new ${glPagingInvokerName}<${myExtendedObjectClassName}>(getTableDbName());\r
- final ${glPagingHandlerName}<${myExtendedObjectClassName}> handler = new ${glPagingHandlerName}<${myExtendedObjectClassName}>() {\r
- public ${glPagingBeanInterfaceName} getPagingBean() { return cb; }\r
+ public PagingResultBean<${myExtendedObjectClassName}> selectPage(final ${myConditionBeanClassName} cb) {\r
+ assertCBNotNull(cb);\r
+ final PagingInvoker<${myExtendedObjectClassName}> invoker = new PagingInvoker<${myExtendedObjectClassName}>(getTableDbName());\r
+ final PagingHandler<${myExtendedObjectClassName}> handler = new PagingHandler<${myExtendedObjectClassName}>() {\r
+ public PagingBean getPagingBean() { return cb; }\r
public int count() { return selectCount(cb); }\r
public List<${myExtendedObjectClassName}> paging() { return selectList(cb); }\r
};\r
}\r
\r
// ===================================================================================\r
- // Various Select\r
- // ==============\r
+ // Scalar Select\r
+ // =============\r
/**\r
- * Select the list of value-label.\r
- * @param cb The condition-bean of ${myExtendedObjectClassName}. (NotNull)\r
- * @param valueLabelSetupper The setupper of value-label. (NotNull)\r
- * @return The list of value-label. (NotNull)\r
+ * Select the scalar value derived by a function. <br />\r
+ * Call a function method after this method called like as follows:\r
+ * <pre>\r
+ * ${table.uncapitalisedJavaName}Bhv.scalarSelect(Date.class).max(new ScalarQuery(${myConditionBeanClassName} cb) {\r
+ * cb.specify().columnXxxDatetime(); // the required specification of target column\r
+ * cb.query().setXxxName_PrefixSearch("S"); // query as you like it\r
+ * });\r
+ * </pre>\r
+ * @param <RESULT> The type of result.\r
+ * @param resultType The type of result. (NotNull)\r
+ * @return The scalar value derived by a function. (Nullable)\r
*/\r
- public List<java.util.Map<String, Object>> selectValueLabelList(${myConditionBeanClassName} cb, ${glValueLabelSetupperName}<${myExtendedObjectClassName}> valueLabelSetupper) {\r
- return createValueLabelList(selectList(cb), valueLabelSetupper);\r
+ public <RESULT> SLFunction<${myConditionBeanClassName}, RESULT> scalarSelect(Class<RESULT> resultType) {\r
+ ${myConditionBeanClassName} cb = newMyConditionBean();\r
+ cb.xsetupForScalarSelect();\r
+ cb.getSqlClause().disableSelectIndex(); // for when you use union\r
+ return new SLFunction<${myConditionBeanClassName}, RESULT>(cb, resultType);\r
}\r
-\r
#if ($table.isUseSequence())\r
+\r
// ===================================================================================\r
// Sequence\r
// ========\r
return delegateSelectNextVal();\r
}\r
#end\r
-\r
#if (${table.hasOnlyOnePrimaryKey()})\r
+\r
// ===================================================================================\r
// Load Referrer\r
// =============\r
#set ($genericPKMyEntityMap = "${table.getPrimaryKeyJavaNativeAsOne()}, ${myExtendedObjectClassName}")\r
#set ($genericPKChildListMap = "${table.getPrimaryKeyJavaNativeAsOne()}, List<${referrerEntityClassName}>")\r
#if (!${referrer.isOneToOne()})\r
-#if ($database.isMakeBehaviorNoConditionLoadReferrer())\r
/**\r
- * {Refer to overload method that has an argument of condition-bean setupper.}\r
- * @param ${myEntityListVariableName} The entity list of ${table.javaBeansRulePropertyName}. (NotNull)\r
+ * {Refer to overload method that has an argument of the list of entity.}\r
+ * @param ${myEntityVariableName} The entity of ${table.javaBeansRulePropertyName}. (NotNull)\r
+ * @param conditionBeanSetupper The instance of referrer condition-bean setupper for registering referrer condition. (NotNull)\r
*/\r
- public void load${referrer.referrerJavaBeansRulePropertyNameInitCap}(List<${myExtendedObjectClassName}> ${myEntityListVariableName}) {\r
- load${referrer.referrerJavaBeansRulePropertyNameInitCap}(${myEntityListVariableName}, new ${glConditionBeanSetupperName}<${referrerCBClassName}>() {\r
- public void setup(${referrerCBClassName} cb) {}});\r
+ public void load${referrer.referrerJavaBeansRulePropertyNameInitCap}(${myExtendedObjectClassName} ${myEntityVariableName}, ConditionBeanSetupper<${referrerCBClassName}> conditionBeanSetupper) {\r
+ xassLRArg(${myEntityVariableName}, conditionBeanSetupper);\r
+ load${referrer.referrerJavaBeansRulePropertyNameInitCap}(xnewLRLs(${myEntityVariableName}), conditionBeanSetupper);\r
}\r
-#end\r
/**\r
* Load referrer of ${referrer.referrerJavaBeansRulePropertyName} with the setupper for condition-bean of referrer. <br />\r
* About internal policy, the value of primary key(and others too) is treated as case-insensitive. <br />\r
* @param ${myEntityListVariableName} The entity list of ${table.javaBeansRulePropertyName}. (NotNull)\r
* @param conditionBeanSetupper The instance of referrer condition-bean setupper for registering referrer condition. (NotNull)\r
*/\r
- public void load${referrer.referrerJavaBeansRulePropertyNameInitCap}(List<${myExtendedObjectClassName}> ${myEntityListVariableName}, ${glConditionBeanSetupperName}<${referrerCBClassName}> conditionBeanSetupper) {\r
- assertObjectNotNull("${myEntityListVariableName}<${myExtendedObjectClassName}>", ${myEntityListVariableName});\r
- assertObjectNotNull("conditionBeanSetupper<${referrerCBClassName}>", conditionBeanSetupper);\r
- if (${myEntityListVariableName}.isEmpty()) { return; }\r
- load${referrer.referrerJavaBeansRulePropertyNameInitCap}(${myEntityListVariableName}, new ${glLoadReferrerOptionName}<${referrerCBClassName}, ${referrerEntityClassName}>(conditionBeanSetupper));\r
+ public void load${referrer.referrerJavaBeansRulePropertyNameInitCap}(List<${myExtendedObjectClassName}> ${myEntityListVariableName}, ConditionBeanSetupper<${referrerCBClassName}> conditionBeanSetupper) {\r
+ xassLRArg(${myEntityListVariableName}, conditionBeanSetupper);\r
+ load${referrer.referrerJavaBeansRulePropertyNameInitCap}(${myEntityListVariableName}, new LoadReferrerOption<${referrerCBClassName}, ${referrerEntityClassName}>(conditionBeanSetupper));\r
+ }\r
+ /**\r
+ * {Refer to overload method that has an argument of the list of entity.}\r
+ * @param ${myEntityVariableName} The entity of ${table.javaBeansRulePropertyName}. (NotNull)\r
+ * @param loadReferrerOption The option of load-referrer. (NotNull)\r
+ */\r
+ public void load${referrer.referrerJavaBeansRulePropertyNameInitCap}(${myExtendedObjectClassName} ${myEntityVariableName}, LoadReferrerOption<${referrerCBClassName}, ${referrerEntityClassName}> loadReferrerOption) {\r
+ xassLRArg(${myEntityVariableName}, loadReferrerOption);\r
+ load${referrer.referrerJavaBeansRulePropertyNameInitCap}(xnewLRLs(${myEntityVariableName}), loadReferrerOption);\r
}\r
/**\r
* {Refer to overload method that has an argument of condition-bean setupper.}\r
* @param ${myEntityListVariableName} The entity list of ${table.javaBeansRulePropertyName}. (NotNull)\r
* @param loadReferrerOption The option of load-referrer. (NotNull)\r
*/\r
- public void load${referrer.referrerJavaBeansRulePropertyNameInitCap}(List<${myExtendedObjectClassName}> ${myEntityListVariableName}, ${glLoadReferrerOptionName}<${referrerCBClassName}, ${referrerEntityClassName}> loadReferrerOption) {\r
- assertObjectNotNull("${myEntityListVariableName}<${myExtendedObjectClassName}>", ${myEntityListVariableName});\r
- assertObjectNotNull("loadReferrerOption<${referrerEntityClassName}, ${referrerCBClassName}>", loadReferrerOption);\r
+ public void load${referrer.referrerJavaBeansRulePropertyNameInitCap}(List<${myExtendedObjectClassName}> ${myEntityListVariableName}, LoadReferrerOption<${referrerCBClassName}, ${referrerEntityClassName}> loadReferrerOption) {\r
+ xassLRArg(${myEntityListVariableName}, loadReferrerOption);\r
if (${myEntityListVariableName}.isEmpty()) { return; }\r
final ${referrerBhvClassName} referrerBhv = xgetBSFLR().select(${referrerBhvClassName}.class);\r
helpLoadReferrerInternally(${myEntityListVariableName}, loadReferrerOption, new InternalLoadReferrerCallback<${myExtendedObjectClassName}, ${table.getPrimaryKeyJavaNativeAsOne()}, ${referrerCBClassName}, ${referrerEntityClassName}>() {\r
public void callbackReferrer_setForeignEntity(${referrerEntityClassName} referrerEntity, ${myExtendedObjectClassName} baseEntity) { referrerEntity.set${referrer.foreignPropertyNameInitCap}(baseEntity); }\r
} );\r
}\r
+\r
#end\r
#end\r
#end\r
-\r
// ===================================================================================\r
- // Pullout Foreign\r
- // ===============\r
+ // Pull out Foreign\r
+ // ================\r
#foreach ($foreignKeys in $table.foreignKeys)\r
#set ($foreignEntityClassName = "${foreignKeys.foreignTableExtendedEntityClassName}")\r
/**\r
}\r
#end\r
#foreach ($referrer in $table.referrers)\r
- #set ($referrerTable = $referrer.table)\r
- #set ($referrerEntityClassName = "${glProjectPrefix}${referrerTable.javaName}")\r
- #if (${referrer.isOneToOne()})\r
+#set ($referrerTable = $referrer.table)\r
+#set ($referrerEntityClassName = "${glProjectPrefix}${referrerTable.javaName}")\r
+#if (${referrer.isOneToOne()})\r
/**\r
* Pull out the list of referrer-as-one table '${referrerEntityClassName}'.\r
* @param ${myEntityListVariableName} The list of ${table.uncapitalisedJavaName}. (NotNull)\r
return helpPulloutInternally(${myEntityListVariableName}, new InternalPulloutCallback<${myExtendedObjectClassName}, ${referrerEntityClassName}>() {\r
public ${referrerEntityClassName} callbackGetForeignEntity(${myExtendedObjectClassName} entity) { return entity.get${referrer.referrerPropertyNameInitCapAsOne}(); } });\r
}\r
- #end\r
+#end\r
#end\r
#if ($table.isWritable())\r
\r
/**\r
* Insert the entity.\r
* @param ${myEntityVariableName} The entity of insert target. (NotNull)\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyExistsException} When the entity already exists. (Unique Constraint Violation)\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyExistsException When the entity already exists. (Unique Constraint Violation)\r
*/\r
public void insert(${myExtendedObjectClassName} ${myEntityVariableName}) {\r
assertEntityNotNull(${myEntityVariableName});\r
}\r
\r
@Override\r
- protected void doCreate(${glEntityInterfaceName} ${myEntityVariableName}) {\r
+ protected void doCreate(Entity ${myEntityVariableName}) {\r
insert((${myExtendedObjectClassName})${myEntityVariableName});\r
}\r
\r
* Update the entity modified-only. {UpdateCountZeroException, ConcurrencyControl}\r
* @param ${myEntityVariableName} The entity of update target. (NotNull) {PrimaryKeyRequired, ConcurrencyColumnRequired}\r
#if ($table.hasOptimisticLock())\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyUpdatedException} When the entity has already been updated.\r
+ * @exception org.seasar.dbflute.exception.${glEntityAlreadyUpdatedException} When the entity has already been updated.\r
#else\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyDeletedException When the entity has already been deleted.\r
#end\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyExistsException} When the entity already exists. (Unique Constraint Violation)\r
+ * @exception org.seasar.dbflute.exception.EntityDuplicatedException When the entity has been duplicated.\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyExistsException When the entity already exists. (Unique Constraint Violation)\r
*/\r
public void update(final ${myExtendedObjectClassName} ${myEntityVariableName}) {\r
helpUpdateInternally(${myEntityVariableName}, new InternalUpdateCallback<${myExtendedObjectClassName}>() {\r
}\r
\r
@Override\r
- protected void doModify(${glEntityInterfaceName} entity) {\r
+ protected void doModify(Entity entity) {\r
update((${myExtendedObjectClassName})entity);\r
}\r
#if ($table.hasOptimisticLock())\r
/**\r
* Update the entity non-strictly modified-only. {UpdateCountZeroException, NonConcurrencyControl}\r
* @param ${myEntityVariableName} The entity of update target. (NotNull) {PrimaryKeyRequired}\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyExistsException} When the entity already exists. (Unique Constraint Violation)\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyDeletedException When the entity has already been deleted.\r
+ * @exception org.seasar.dbflute.exception.EntityDuplicatedException When the entity has been duplicated.\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyExistsException When the entity already exists. (Unique Constraint Violation)\r
*/\r
public void updateNonstrict(final ${myExtendedObjectClassName} ${myEntityVariableName}) {\r
helpUpdateNonstrictInternally(${myEntityVariableName}, new InternalUpdateNonstrictCallback<${myExtendedObjectClassName}>() {\r
#end\r
\r
@Override\r
- protected void doModifyNonstrict(${glEntityInterfaceName} entity) {\r
-#if ($database.isVersionAfter1040() && ($table.isUseUpdateDate() || $table.isUseVersionNo()))\r
+ protected void doModifyNonstrict(Entity entity) {\r
+#if ($table.hasOptimisticLock())\r
updateNonstrict((${myExtendedObjectClassName})entity);\r
#else\r
update((${myExtendedObjectClassName})entity);\r
* Insert or update the entity modified-only. {ConcurrencyControl(when update)}\r
* @param ${myEntityVariableName} The entity of insert or update target. (NotNull)\r
#if ($table.hasOptimisticLock())\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyUpdatedException} When the entity has already been updated.\r
+ * @exception org.seasar.dbflute.exception.${glEntityAlreadyUpdatedException} When the entity has already been updated.\r
#else\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyDeletedException When the entity has already been deleted.\r
#end\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyExistsException} When the entity already exists. (Unique Constraint Violation)\r
+ * @exception org.seasar.dbflute.exception.EntityDuplicatedException When the entity has been duplicated.\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyExistsException When the entity already exists. (Unique Constraint Violation)\r
*/\r
public void insertOrUpdate(final ${myExtendedObjectClassName} ${myEntityVariableName}) {\r
helpInsertOrUpdateInternally(${myEntityVariableName}, new InternalInsertOrUpdateCallback<${myExtendedObjectClassName}, ${myConditionBeanClassName}>() {\r
}\r
\r
@Override\r
- protected void doCreateOrUpdate(${glEntityInterfaceName} ${myEntityVariableName}) {\r
+ protected void doCreateOrUpdate(Entity ${myEntityVariableName}) {\r
insertOrUpdate((${myExtendedObjectClassName})${myEntityVariableName});\r
}\r
#if ($table.hasOptimisticLock())\r
/**\r
* Insert or update the entity non-strictly modified-only. {NonConcurrencyControl(when update)}\r
* @param ${myEntityVariableName} The entity of insert or update target. (NotNull)\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyExistsException} When the entity already exists. (Unique Constraint Violation)\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyDeletedException When the entity has already been deleted.\r
+ * @exception org.seasar.dbflute.exception.EntityDuplicatedException When the entity has been duplicated.\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyExistsException When the entity already exists. (Unique Constraint Violation)\r
*/\r
public void insertOrUpdateNonstrict(${myExtendedObjectClassName} ${myEntityVariableName}) {\r
helpInsertOrUpdateInternally(${myEntityVariableName}, new InternalInsertOrUpdateNonstrictCallback<${myExtendedObjectClassName}>() {\r
#end\r
\r
@Override\r
- protected void doCreateOrUpdateNonstrict(${glEntityInterfaceName} entity) {\r
+ protected void doCreateOrUpdateNonstrict(Entity entity) {\r
#if ($table.isUseUpdateDate() || $table.isUseVersionNo())\r
insertOrUpdateNonstrict((${myExtendedObjectClassName})entity);\r
#else\r
* Delete the entity. {UpdateCountZeroException, ConcurrencyControl}\r
* @param ${myEntityVariableName} The entity of delete target. (NotNull) {PrimaryKeyRequired, ConcurrencyColumnRequired}\r
#if ($table.hasOptimisticLock())\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyUpdatedException} When the entity has already been updated.\r
+ * @exception org.seasar.dbflute.exception.${glEntityAlreadyUpdatedException} When the entity has already been updated.\r
#else\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyDeletedException When the entity has already been deleted.\r
#end\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
+ * @exception org.seasar.dbflute.exception.EntityDuplicatedException When the entity has been duplicated.\r
*/\r
public void delete(${myExtendedObjectClassName} ${myEntityVariableName}) {\r
helpDeleteInternally(${myEntityVariableName}, new InternalDeleteCallback<${myExtendedObjectClassName}>() {\r
}\r
\r
@Override\r
- protected void doRemove(${glEntityInterfaceName} ${myEntityVariableName}) {\r
+ protected void doRemove(Entity ${myEntityVariableName}) {\r
delete((${myExtendedObjectClassName})${myEntityVariableName});\r
}\r
#if ($table.hasOptimisticLock())\r
/**\r
* Delete the entity non-strictly. {UpdateCountZeroException, NonConcurrencyControl}\r
* @param ${myEntityVariableName} Entity. (NotNull) {PrimaryKeyRequired}\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyDeletedException When the entity has already been deleted.\r
+ * @exception org.seasar.dbflute.exception.EntityDuplicatedException When the entity has been duplicated.\r
*/\r
public void deleteNonstrict(${myExtendedObjectClassName} ${myEntityVariableName}) {\r
helpDeleteNonstrictInternally(${myEntityVariableName}, new InternalDeleteNonstrictCallback<${myExtendedObjectClassName}>() {\r
/**\r
* Delete the entity non-strictly ignoring deleted. {UpdateCountZeroException, NonConcurrencyControl}\r
* @param ${myEntityVariableName} Entity. (NotNull) {PrimaryKeyRequired}\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
+ * @exception org.seasar.dbflute.exception.EntityDuplicatedException When the entity has been duplicated.\r
*/\r
public void deleteNonstrictIgnoreDeleted(${myExtendedObjectClassName} ${myEntityVariableName}) {\r
helpDeleteNonstrictIgnoreDeletedInternally(${myEntityVariableName}, new InternalDeleteNonstrictIgnoreDeletedCallback<${myExtendedObjectClassName}>() {\r
* @param ${myEntityListVariableName} The list of the entity. (NotNull)\r
* @return The array of updated count.\r
#if ($table.hasOptimisticLock())\r
- * @exception ${glPackageBaseCommonException}.${glBatchEntityAlreadyUpdatedException} When the entity has already been updated. This exception extends ${glEntityAlreadyUpdateException}.\r
+ * @exception org.seasar.dbflute.exception.BatchEntityAlreadyUpdatedException When the entity has already been updated. This exception extends ${glEntityAlreadyUpdateException}.\r
#else\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyDeletedException When the entity has already been deleted.\r
#end\r
*/\r
public int[] batchUpdate(List<${myExtendedObjectClassName}> ${myEntityListVariableName}) {\r
* This method use 'Batch Update' of java.sql.PreparedStatement.\r
* @param ${myEntityListVariableName} The list of the entity. (NotNull)\r
* @return The array of updated count.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyDeletedException When the entity has already been deleted.\r
*/\r
public int[] batchUpdateNonstrict(List<${myExtendedObjectClassName}> ${myEntityListVariableName}) {\r
assertObjectNotNull("${myEntityListVariableName}", ${myEntityListVariableName});\r
* @param ${myEntityListVariableName} The list of the entity. (NotNull)\r
* @return The array of deleted count.\r
#if ($table.hasOptimisticLock())\r
- * @exception ${glPackageBaseCommonException}.${glBatchEntityAlreadyUpdatedException} When the entity has already been updated. This exception extends ${glEntityAlreadyUpdateException}.\r
+ * @exception org.seasar.dbflute.exception.BatchEntityAlreadyUpdatedException When the entity has already been updated. This exception extends ${glEntityAlreadyUpdateException}.\r
#else\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyDeletedException When the entity has already been deleted.\r
#end\r
*/\r
public int[] batchDelete(List<${myExtendedObjectClassName}> ${myEntityListVariableName}) {\r
* This method use 'Batch Update' of java.sql.PreparedStatement.\r
* @param ${myEntityListVariableName} The list of the entity. (NotNull)\r
* @return The array of deleted count.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyDeletedException When the entity has already been deleted.\r
*/\r
public int[] batchDeleteNonstrict(List<${myExtendedObjectClassName}> ${myEntityListVariableName}) {\r
assertObjectNotNull("${myEntityListVariableName}", ${myEntityListVariableName});\r
* @return The updated count.\r
*/\r
public int queryUpdate(${myExtendedObjectClassName} ${myEntityVariableName}, ${myConditionBeanClassName} cb) {\r
- assertObjectNotNull("${myEntityVariableName}", ${myEntityVariableName}); assertConditionBeanNotNull(cb);\r
+ assertObjectNotNull("${myEntityVariableName}", ${myEntityVariableName}); assertCBNotNull(cb);\r
setupCommonColumnOfUpdateIfNeeds(${myEntityVariableName});\r
filterEntityOfUpdate(${myEntityVariableName}); assertEntityOfUpdate(${myEntityVariableName});\r
- return getMyDao().updateByQuery(cb, ${myEntityVariableName});\r
+ return invoke(createQueryUpdateEntityCBCommand(${myEntityVariableName}, cb));\r
}\r
\r
/**\r
* @return The deleted count.\r
*/\r
public int queryDelete(${myConditionBeanClassName} cb) {\r
- assertConditionBeanNotNull(cb);\r
- return getMyDao().deleteByQuery(cb);\r
+ assertCBNotNull(cb);\r
+ return invoke(createQueryDeleteCBCommand(cb));\r
}\r
#end\r
+#else\r
+#if ($table.isAvailableNonPrimaryKeyWritable())\r
\r
// ===================================================================================\r
- // Various Update\r
- // ==============\r
-#if ($database.isMakeBehaviorCopyInsert())\r
-#if ($table.isUseIdentity())\r
-#if ($table.hasPrimaryKey())\r
-\r
- /* (non-javadoc) \r
- * Copy-insert.\r
- * @param primaryKey Primary-keys. (NotNull)\r
- * @return Inserted count.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException}\r
+ // Entity Update\r
+ // =============\r
+ /**\r
+ * Insert.\r
+ * @param ${myEntityVariableName} Entity. (NotNull)\r
*/\r
- public int copyInsertByPKValueAfterSelect(${table.PrimaryKeyArgsString}) {\r
+ public void insert(${myExtendedObjectClassName} ${myEntityVariableName}) {\r
+ assertEntityNotNull(${myEntityVariableName});\r
+ delegateInsert(${myEntityVariableName});\r
+ }\r
+#end\r
+#end\r
+#if ($table.isBuriTarget())\r
+\r
+ // ===================================================================================\r
+ // Buri Interface\r
+ // ==============\r
+ public ${myExtendedObjectClassName} xgetEntityForBuri(${table.primaryKeyArgsString}) { // For Buri\r
${myExtendedObjectClassName} entity = new ${myExtendedObjectClassName}();\r
${table.getPrimaryKeyArgsSetupString('entity')}\r
- final ${myConditionBeanClassName} cb = newMyConditionBean();\r
+ ${myConditionBeanClassName} cb = newMyConditionBean();\r
cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString(entity));\r
- final ${myExtendedObjectClassName} currentEntity = selectEntityWithDeletedCheck(cb);\r
- return delegateInsert(currentEntity);\r
+ return selectEntity(cb);\r
}\r
-#end\r
\r
- /**\r
- * Filter 'copy-insert' entity.\r
- * @param ${myEntityVariableName} Entity. (NotNull)\r
- */\r
- protected void filterCopyInsertEntity(${myExtendedObjectClassName} ${myEntityVariableName}) {\r
+ public List<${myExtendedObjectClassName}> xgetEntitiesForBuri(List<${table.primaryKeyJavaNativeAsOne}> ids) { // For Buri\r
+ ${myConditionBeanClassName} cb = newMyConditionBean();\r
+ cb.query().set${table.primaryKeyAsOne.javaName}_InScope(ids);\r
+ return selectList(cb);\r
}\r
-#end\r
-#end\r
-#if ($database.isMakeBehaviorLoopUpdate())\r
- /**\r
- * Loop update modified elements only.\r
- * @param ${myEntityListVariableName} The list of entity. (NotNull and Empty OK)\r
- */\r
- public void loopUpdateModifiedElementsOnly(List<${myExtendedObjectClassName}> ${myEntityListVariableName}) {\r
- assertObjectNotNull("${myEntityListVariableName}", ${myEntityListVariableName});\r
- for (${myExtendedObjectClassName} entity : ${myEntityListVariableName}) { if (entity.hasModification()) { update(entity); } }\r
+\r
+ protected org.escafe.buri.engine.processor.SimpleBuriProcessor _simpleBuriProcessor;\r
+ public void setSimpleBuriProcessor(org.escafe.buri.engine.processor.SimpleBuriProcessor simpleBuriProcessor) {\r
+ _simpleBuriProcessor = simpleBuriProcessor;\r
}\r
+#foreach ($processName in $table.tableProcessForMethodNameList)\r
\r
-#if ($table.isUseUpdateDate() || $table.isUseVersionNo())\r
- /**\r
- * Loop update modified elements only non-strictly.\r
- * @param ${myEntityListVariableName} The list of entity. (NotNull and Empty OK)\r
- */\r
- public void loopUpdateModifiedElementsOnlyNonstrict(List<${myExtendedObjectClassName}> ${myEntityListVariableName}) {\r
- assertObjectNotNull("${myEntityListVariableName}", ${myEntityListVariableName});\r
- for (${myExtendedObjectClassName} entity : ${myEntityListVariableName}) { if (entity.hasModification()) { updateNonstrict(entity); } }\r
+ public void toNextStatus_${processName}(${myExtendedObjectClassName} ${myEntityVariableName}, ${glBuriDef}.${processName}_Action action) {\r
+ _simpleBuriProcessor.toNextStatusAction(${glBuriDef}.${processName}_Status.basePath(), ${myEntityVariableName}, action.code());\r
}\r
-#end\r
-#end\r
-#else\r
- #if ($table.isAvailableNonPrimaryKeyWritable())\r
\r
- // ===================================================================================\r
- // Entity Update\r
- // =============\r
- /**\r
- * Insert.\r
- * @param ${myEntityVariableName} Entity. (NotNull)\r
- */\r
- public void insert(${myExtendedObjectClassName} ${myEntityVariableName}) {\r
- assertEntityNotNull(${myEntityVariableName});\r
- delegateInsert(${myEntityVariableName});\r
+ public ${glBuriDef}.${processName}_Status getStatus_${processName}(${myExtendedObjectClassName} ${myEntityVariableName}) {\r
+ java.util.List<BuriPathData> buriPathDataList = xgetCurrentPathDataList(${myEntityVariableName});\r
+ java.util.List<${glBuriDef}.${processName}_Status> statusList = new java.util.ArrayList<${glBuriDef}.${processName}_Status>();\r
+ if (buriPathDataList.isEmpty()) { return null; }\r
+ for (BuriPathData buriPathData : buriPathDataList) {\r
+ ${glBuriDef}.${processName}_Status status = ${glBuriDef}.${processName}_Status.codeOf(buriPathData.getPathName());\r
+ if (status != null) { statusList.add(status); }\r
+ }\r
+ if (statusList.size() > 1) {\r
+ String msg = "This method does not support duplicate status: " + statusList;\r
+ throw new IllegalStateException(msg);\r
+ }\r
+ return !statusList.isEmpty() ? statusList.get(0) : null;\r
+ }\r
+\r
+ public java.util.List<${myExtendedObjectClassName}> getEntities(org.seasar.dbflute.bhv.ConditionBeanSetupper<${myConditionBeanClassName}> conditionBeanSetupper\r
+ , ${glBuriDef}.${processName}_Status... statuses) {\r
+ assertObjectNotNull("statuses", statuses);\r
+ ${myConditionBeanClassName} cb = newMyConditionBean();\r
+ cb.setupSelect_BuriPathData();\r
+ conditionBeanSetupper.setup(cb);\r
+ java.util.List<String> pathNameList = new java.util.ArrayList<String>();\r
+ for (${glBuriDef}.${processName}_Status status : statuses) {\r
+ pathNameList.add(status.fullPath());\r
+ }\r
+ cb.query().queryBuriPathData().setPathName_InScope(pathNameList);\r
+ return selectList(cb);\r
}\r
- #end\r
#end\r
\r
+ private List<BuriPathData> xgetCurrentPathDataList(${myExtendedObjectClassName} ${myEntityVariableName}) {\r
+ ${glPackageExtendedBhv}.BuriPathDataBhv bhv = xgetBuriPathDataBhv();\r
+ BuriPathDataCB cb = bhv.newMyConditionBean();\r
+ cb.specify().columnPathName();\r
+ cb.query().setPkeyNum_Equal(new Long(${myEntityVariableName}.${table.primaryKeyGetterCommaString}));\r
+ cb.query().setDataType_Equal(${myExtendedObjectClassName}.class.getName());\r
+ return bhv.selectList(cb);\r
+ }\r
+\r
+ private ${glPackageExtendedBhv}.BuriPathDataBhv xgetBuriPathDataBhv() {\r
+ return getBehaviorSelector().select(${glPackageExtendedBhv}.BuriPathDataBhv.class);\r
+ }\r
+#end\r
+ \r
// ===================================================================================\r
// Delegate Method\r
// ===============\r
+ // [Behavior Command]\r
// -----------------------------------------------------\r
// Select\r
// ------\r
-#if ($database.isMakeDeprecated())\r
- ${database.behaviorDelegateModifier} int delegateGetCountAll() { return delegateSelectCount(newMyConditionBean()); }\r
- ${database.behaviorDelegateModifier} List<${myExtendedObjectClassName}> delegateGetListAll() { return delegateSelectList(newMyConditionBean()); }\r
-#end\r
- ${database.behaviorDelegateModifier} int delegateSelectCount(${myConditionBeanClassName} cb) { assertConditionBeanNotNull(cb); return getMyDao().selectCount(cb); }\r
- ${database.behaviorDelegateModifier} List<${myExtendedObjectClassName}> delegateSelectList(${myConditionBeanClassName} cb) { assertConditionBeanNotNull(cb); return getMyDao().selectList(cb); }\r
+ protected int delegateSelectCount(${myConditionBeanClassName} cb) { return invoke(createSelectCountCBCommand(cb)); }\r
+ protected void delegateSelectCursor(${myConditionBeanClassName} cb, EntityRowHandler<${myExtendedObjectClassName}> entityRowHandler)\r
+ { invoke(createSelectCursorCBCommand(cb, entityRowHandler, ${myExtendedObjectClassName}.class)); }\r
+ protected int doCallReadCount(ConditionBean cb) { return delegateSelectCount((${myConditionBeanClassName})cb); }\r
+ protected List<${myExtendedObjectClassName}> delegateSelectList(${myConditionBeanClassName} cb)\r
+ { return invoke(createSelectListCBCommand(cb, ${myExtendedObjectClassName}.class)); }\r
+ @SuppressWarnings("unchecked")\r
+ protected List<Entity> doCallReadList(ConditionBean cb) { return (List)delegateSelectList((${myConditionBeanClassName})cb); }\r
#if ($table.isUseSequence())\r
- ${database.behaviorDelegateModifier} ${table.sequenceReturnType} delegateSelectNextVal() { return getMyDao().selectNextVal(); }\r
+ protected ${table.sequenceReturnType} delegateSelectNextVal() { return invoke(createSelectNextValCommand(${table.sequenceReturnType}.class)); }\r
#end\r
#if ($table.isWritable())\r
\r
// -----------------------------------------------------\r
// Update\r
// ------\r
- ${database.behaviorDelegateModifier} int delegateInsert(${myExtendedObjectClassName} e) { if (!processBeforeInsert(e)) { return 1; } return getMyDao().insert(e); }\r
- ${database.behaviorDelegateModifier} int delegateUpdate(${myExtendedObjectClassName} e) { if (!processBeforeUpdate(e)) { return 1; } return getMyDao().updateModifiedOnly(e); }\r
+ protected int delegateInsert(${myExtendedObjectClassName} e)\r
+ { if (!processBeforeInsert(e)) { return 1; } return invoke(createInsertEntityCommand(e)); }\r
+ protected int doCallCreate(Entity entity) {return delegateInsert(downcast(entity)); }\r
+ protected int delegateUpdate(${myExtendedObjectClassName} e)\r
+ { if (!processBeforeUpdate(e)) { return 1; } return invoke(createUpdateEntityCommand(e)); }\r
+ protected int doCallModify(Entity entity) { return delegateUpdate(downcast(entity)); }\r
#if ($table.hasOptimisticLock())\r
- ${database.behaviorDelegateModifier} int delegateUpdateNonstrict(${myExtendedObjectClassName} e) { if (!processBeforeUpdate(e)) { return 1; } return getMyDao().updateNonstrictModifiedOnly(e); }\r
+ protected int delegateUpdateNonstrict(${myExtendedObjectClassName} e)\r
+ { if (!processBeforeUpdate(e)) { return 1; } return invoke(createUpdateNonstrictEntityCommand(e)); }\r
#end\r
- ${database.behaviorDelegateModifier} int delegateDelete(${myExtendedObjectClassName} e) { if (!processBeforeDelete(e)) { return 1; } return getMyDao().delete(e); }\r
+ protected int delegateDelete(${myExtendedObjectClassName} e)\r
+ { if (!processBeforeDelete(e)) { return 1; } return invoke(createDeleteEntityCommand(e)); }\r
+ protected int doCallRemove(Entity entity) { return delegateDelete(downcast(entity)); }\r
#if ($table.hasOptimisticLock())\r
- ${database.behaviorDelegateModifier} int delegateDeleteNonstrict(${myExtendedObjectClassName} e) { if (!processBeforeDelete(e)) { return 1; } return getMyDao().deleteNonstrict(e); }\r
-#end\r
-\r
- ${database.behaviorDelegateModifier} int[] delegateInsertList(List<${myExtendedObjectClassName}> ls) {\r
- assertObjectNotNull("${myEntityListVariableName}", ls); return getMyDao().insertList(helpFilterBeforeInsertInternally(ls));\r
- }\r
- ${database.behaviorDelegateModifier} int[] delegateUpdateList(List<${myExtendedObjectClassName}> ls) {\r
- assertObjectNotNull("${myEntityListVariableName}", ls); return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls));\r
- }\r
+ protected int delegateDeleteNonstrict(${myExtendedObjectClassName} e)\r
+ { if (!processBeforeDelete(e)) { return 1; } return invoke(createDeleteNonstrictEntityCommand(e)); }\r
+#end\r
+\r
+ protected int[] delegateInsertList(List<${myExtendedObjectClassName}> ls)\r
+ { if (ls.isEmpty()) { return new int[]{}; } return invoke(createBatchInsertEntityCommand(helpFilterBeforeInsertInternally(ls))); }\r
+ @SuppressWarnings("unchecked")\r
+ protected int[] doCreateList(List<Entity> ls) { return delegateInsertList((List)ls); }\r
+ protected int[] delegateUpdateList(List<${myExtendedObjectClassName}> ls)\r
+ { if (ls.isEmpty()) { return new int[]{}; } return invoke(createBatchUpdateEntityCommand(helpFilterBeforeUpdateInternally(ls))); }\r
+ @SuppressWarnings("unchecked")\r
+ protected int[] doModifyList(List<Entity> ls) { return delegateUpdateList((List)ls); }\r
#if ($table.hasOptimisticLock())\r
- ${database.behaviorDelegateModifier} int[] delegateUpdateListNonstrict(List<${myExtendedObjectClassName}> ls) {\r
- assertObjectNotNull("${myEntityListVariableName}", ls); return getMyDao().updateListNonstrict(helpFilterBeforeUpdateInternally(ls));\r
- }\r
+ protected int[] delegateUpdateListNonstrict(List<${myExtendedObjectClassName}> ls)\r
+ { if (ls.isEmpty()) { return new int[]{}; } return invoke(createBatchUpdateNonstrictEntityCommand(helpFilterBeforeUpdateInternally(ls))); }\r
#end\r
- ${database.behaviorDelegateModifier} int[] delegateDeleteList(List<${myExtendedObjectClassName}> ls) {\r
- assertObjectNotNull("${myEntityListVariableName}", ls); return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls));\r
- }\r
+ protected int[] delegateDeleteList(List<${myExtendedObjectClassName}> ls)\r
+ { if (ls.isEmpty()) { return new int[]{}; } return invoke(createBatchDeleteEntityCommand(helpFilterBeforeDeleteInternally(ls))); }\r
+ @SuppressWarnings("unchecked")\r
+ protected int[] doRemoveList(List<Entity> ls) { return delegateDeleteList((List)ls); }\r
#if ($table.hasOptimisticLock())\r
- ${database.behaviorDelegateModifier} int[] delegateDeleteListNonstrict(List<${myExtendedObjectClassName}> ls) {\r
- assertObjectNotNull("${myEntityListVariableName}", ls); return getMyDao().deleteListNonstrict(helpFilterBeforeDeleteInternally(ls));\r
- }\r
+ protected int[] delegateDeleteListNonstrict(List<${myExtendedObjectClassName}> ls)\r
+ { if (ls.isEmpty()) { return new int[]{}; } return invoke(createBatchDeleteNonstrictEntityCommand(helpFilterBeforeDeleteInternally(ls))); }\r
#end\r
#else\r
#if ($table.isAvailableNonPrimaryKeyWritable())\r
- ${database.behaviorDelegateModifier} int delegateInsert(${myExtendedObjectClassName} entity) {\r
- assertEntityNotNull(entity);// If this table use identity, the entity does not have primary-key.\r
- return getMyDao().insert(entity);\r
+ protected int delegateInsert(${myExtendedObjectClassName} e) {\r
+ assertEntityNotNull(e); // If this table use identity, the entity does not have primary-key.\r
+ filterEntityOfInsert(e);\r
+ return invoke(createInsertEntityCommand(e));\r
+ }\r
+ protected InsertEntityCommand createInsertEntityCommand(Entity entity) {\r
+ assertBehaviorCommandInvoker("createInsertEntityCommand");\r
+ final InsertEntityCommand cmd = new InsertEntityCommand();\r
+ cmd.setTableDbName(getTableDbName());\r
+ _behaviorCommandInvoker.injectComponentProperty(cmd);\r
+ cmd.setEntityType(entity.getClass());\r
+ cmd.setEntity(entity);\r
+ return cmd;\r
}\r
#end\r
#end\r
// ===============\r
#if ($table.hasBehaviorFilterBeforeInsertColumn())\r
@Override\r
- protected void filterEntityOfInsert(${glEntityInterfaceName} targetEntity) {\r
+ protected void filterEntityOfInsert(Entity targetEntity) {\r
super.filterEntityOfInsert(targetEntity);\r
${myExtendedObjectClassName} entity = downcast(targetEntity);\r
#foreach ($column in $table.behaviorFilterBeforeInsertColumnList)\r
#end\r
}\r
#end\r
+#if ($table.isWritable())\r
#if ($table.hasBehaviorFilterBeforeUpdateColumn())\r
@Override\r
- protected void filterEntityOfUpdate(${glEntityInterfaceName} targetEntity) {\r
+ protected void filterEntityOfUpdate(Entity targetEntity) {\r
super.filterEntityOfUpdate(targetEntity);\r
${myExtendedObjectClassName} entity = downcast(targetEntity);\r
#foreach ($column in $table.behaviorFilterBeforeUpdateColumnList)\r
}\r
#end\r
#end\r
+#end\r
#if ($database.isMakeFlatExpansion())\r
\r
// ===================================================================================\r
* @param <SOURCE> The type of source.\r
* @return Hierarchy request of ${myExtendedObjectClassName}. (NotNull)\r
*/\r
- public <SOURCE> ${glHierarchyBasicRequestName}<${myExtendedObjectClassName}, ${myDBMetaClassName}.${table.relationTraceClassName}RelationTrace> createHierarchyBasicRequest(List<SOURCE> sourceList) {\r
- final ${glHierarchyBasicRequestName}<${myExtendedObjectClassName}, ${myDBMetaClassName}.${table.relationTraceClassName}RelationTrace> request = new ${glHierarchyBasicRequestName}<${myExtendedObjectClassName}, ${myDBMetaClassName}.${table.relationTraceClassName}RelationTrace>(${myExtendedObjectClassName}.class);\r
+ public <SOURCE> ${glHierarchyBasicRequest}<${myExtendedObjectClassName}, ${myDBMetaClassName}.${table.relationTraceClassName}RelationTrace> createHierarchyBasicRequest(List<SOURCE> sourceList) {\r
+ final ${glHierarchyBasicRequest}<${myExtendedObjectClassName}, ${myDBMetaClassName}.${table.relationTraceClassName}RelationTrace> request = new ${glHierarchyBasicRequest}<${myExtendedObjectClassName}, ${myDBMetaClassName}.${table.relationTraceClassName}RelationTrace>(${myExtendedObjectClassName}.class);\r
request.registerSourceList(sourceList);\r
return request;\r
}\r
* @param request Hierarchy request of ${myExtendedObjectClassName}. (NotNull)\r
* @return The list of ${myExtendedObjectClassName}. (NotNull)\r
*/\r
- public List<${myExtendedObjectClassName}> arrangeHierarchy(${glHierarchyRequestName}<${myExtendedObjectClassName}> request) {\r
- return new ${glHierarchyArrangerName}<${myExtendedObjectClassName}>().arrangeHierarchy(request);\r
+ public List<${myExtendedObjectClassName}> arrangeHierarchy(${glHierarchyRequest}<${myExtendedObjectClassName}> request) {\r
+ return new ${glHierarchyArranger}<${myExtendedObjectClassName}>().arrangeHierarchy(request);\r
}\r
#end\r
\r
// Optimistic Lock Info\r
// ====================\r
@Override\r
- protected boolean hasVersionNoValue(${glEntityInterfaceName} entity) {\r
+ protected boolean hasVersionNoValue(Entity entity) {\r
#if ($table.isUseVersionNo())\r
return !(downcast(entity).get${table.versionNoJavaName}() + "").equals("null");// For primitive type\r
#else\r
}\r
\r
@Override\r
- protected boolean hasUpdateDateValue(${glEntityInterfaceName} entity) {\r
+ protected boolean hasUpdateDateValue(Entity entity) {\r
#if ($table.isUseUpdateDate())\r
return downcast(entity).get${table.updateDateJavaName}() != null;\r
#else\r
// ===================================================================================\r
// Helper\r
// ======\r
- protected ${myExtendedObjectClassName} downcast(${glEntityInterfaceName} entity) {\r
+ protected ${myExtendedObjectClassName} downcast(Entity entity) {\r
return helpDowncastInternally(entity, ${myExtendedObjectClassName}.class);\r
}\r
}\r