前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ofbiz实体引擎(六) GenericHelper的初始化创建

ofbiz实体引擎(六) GenericHelper的初始化创建

作者头像
cfs
发布2018-03-08 15:17:04
6620
发布2018-03-08 15:17:04
举报
文章被收录于专栏:编码小白
代码语言:javascript
复制
 /**
     * @author 郑小康
     *
     * 1.根据groupName获取GenericHelperInfo
     *
     * 2.获取GenericHelperInfo的helperBaseName
     *
     * 3.如果HelperFullName不为空,则进行下面的操作 HelperFullName可能是default,也可能是default#tenantId
     *
     * 4.根据helperBaseName(localmysql),获取对应的ModelFieldTypeReader 字段类型阅读器,这个是为了在建表的时候的创建对应字段类型
     *
     * 5.根据helperInfo通过GenericHelperFactory工厂获取GenericHelper,实际是GenericHelperDAO
     *
     * 6.根据helperBaseName获取对应的Datasource标签实例
     *
     * 7.根据GenericHelper所构建的实例,调用其checkDataSource检查数据源,向其中添加未添加的表和字段
     *
     * */
    private void initializeOneGenericHelper(String groupName) {
        //根据groupName获取GenericHelperInfo
        GenericHelperInfo helperInfo = this.getGroupHelperInfo(groupName);
        if (helperInfo == null) {
            if (Debug.infoOn()) {
                Debug.logInfo("Delegator \"" + delegatorFullName + "\" NOT initializing helper for entity group \"" + groupName + "\" because the group is not associated to this delegator.", module);
            }
            return;
        }
        String helperBaseName = helperInfo.getHelperBaseName();

        if (Debug.infoOn()) {
            Debug.logInfo("Delegator \"" + delegatorFullName + "\" initializing helper \"" + helperBaseName + "\" for entity group \"" + groupName + "\".", module);
        }
        if (UtilValidate.isNotEmpty(helperInfo.getHelperFullName())) {
            // pre-load field type defs, the return value is ignored
            ModelFieldTypeReader.getModelFieldTypeReader(helperBaseName);
            // get the helper and if configured, do the datasource check
            GenericHelper helper = GenericHelperFactory.getHelper(helperInfo);

            try {
                Datasource datasource = EntityConfig.getDatasource(helperBaseName);
                if (datasource.getCheckOnStart()) {
                    if (Debug.infoOn()) {
                        Debug.logInfo("Doing database check as requested in entityengine.xml with addMissing=" + datasource.getAddMissingOnStart(), module);
                    }
                    helper.checkDataSource(this.getModelEntityMapByGroup(groupName), null, datasource.getAddMissingOnStart());
                }
            } catch (GenericEntityException e) {
                Debug.logWarning(e, e.getMessage(), module);
            }
        }
    }

    protected Callable<Void> createHelperCallable(final String groupName) {
        return new Callable<Void>() {
            @Override
            public Void call() {
                initializeOneGenericHelper(groupName);
                return null;
            }
        };
    }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年07月30日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档