根據(jù)領(lǐng)域?qū)ο笈可上嚓P(guān)模型
本文介紹如何在領(lǐng)域?qū)ο蟮幕A(chǔ)上直接批量創(chuàng)建應(yīng)用服務(wù)、結(jié)構(gòu)對象和數(shù)據(jù)模型。
背景信息
技術(shù)建模中結(jié)構(gòu)對象、領(lǐng)域?qū)ο蠛蛿?shù)據(jù)對象中的很多字段可能都是相同的,如果所有的模型都從對象到字段逐個手動創(chuàng)建,會帶來較大的維護成本。系統(tǒng)支持根據(jù)領(lǐng)域?qū)ο笾苯优縿?chuàng)建應(yīng)用服務(wù)、結(jié)構(gòu)對象和數(shù)據(jù)模型,同時會自動創(chuàng)建模型間的關(guān)系映射,減少模型設(shè)計的工作量。
操作步驟
登錄BizWorks,在選擇平臺下拉列表中選中建模平臺。
單擊頁面右上角圖標(biāo)或其文本框區(qū)域,在下拉列表中單擊目標(biāo)項目名稱后,單擊建模頁簽。在建模導(dǎo)航欄中,選擇 。
在限界上下文頁面,單擊目標(biāo)限界上下文名稱。
在目標(biāo)限界上下文導(dǎo)航欄中,單擊領(lǐng)域?qū)ο?/b>。在領(lǐng)域?qū)ο?/b>頁面,單擊批量生成相關(guān)模型。
在批量生成相關(guān)模型面板,選擇生成范圍(支持全量生產(chǎn)和部分生成)。
如果您選擇全量生成,單擊下一步。
如果您選擇部分生成,在領(lǐng)域?qū)ο罅斜碇羞x中目標(biāo)領(lǐng)域?qū)ο蠛螅瑔螕?b data-tag="uicontrol" id="uicontrol-ux9-wzv-43j" class="uicontrol">下一步。
在生成設(shè)置面板,完成相關(guān)參數(shù)配置。
配置項
描述
生成應(yīng)用服務(wù)和結(jié)構(gòu)對象
支持以下取值:
生成
每個領(lǐng)域?qū)ο蠖紝⑸梢粋€應(yīng)用服務(wù),應(yīng)用服務(wù)編碼規(guī)則為:領(lǐng)域?qū)ο缶幋a+Service,如果領(lǐng)域?qū)ο缶幋a超出29位,則截取前29位。
領(lǐng)域?qū)ο笾校粯?biāo)記為“聚合根”的對象生成的應(yīng)用服務(wù),將為具備完整增刪改查功能的應(yīng)用服務(wù)方法。
領(lǐng)域?qū)ο笾校粯?biāo)記為“實體對象”、“值對象”類型的對象生成的應(yīng)用服務(wù),將僅為具備查詢功能的應(yīng)用服務(wù)方法。
每個領(lǐng)域?qū)ο笠约邦I(lǐng)域?qū)ο笞侄沃幸闷渌念I(lǐng)域?qū)ο髮⑸蓪?yīng)結(jié)構(gòu)對象,結(jié)構(gòu)對象編碼規(guī)則為:領(lǐng)域?qū)ο缶幋a+DTO。
不生成
生成數(shù)據(jù)模型
支持以下取值:
生成
每個領(lǐng)域?qū)ο蠖紝⑸梢粋€數(shù)據(jù)模型,數(shù)據(jù)模型與領(lǐng)域?qū)ο缶幋a相同。
領(lǐng)域?qū)ο笾忻恳粋€基礎(chǔ)類型的字段都將生成數(shù)據(jù)模型的字段。
不生成
重復(fù)數(shù)據(jù)判斷規(guī)則
支持以下取值:
對象編碼重復(fù)
生成結(jié)構(gòu)對象和數(shù)據(jù)模型時,僅判斷模型的編碼是否重復(fù),不對模型字段編碼作比較。
生成應(yīng)用服務(wù)時,僅判斷服務(wù)編碼是否存在,不判斷服務(wù)的字段。
字段編碼重復(fù)
生成結(jié)構(gòu)對象和數(shù)據(jù)模型時,在模型的編碼重復(fù)時,繼續(xù)比較模型字段編碼,判斷字段是否重復(fù)。
生成應(yīng)用服務(wù)時,僅判斷服務(wù)編碼是否存在,不判斷服務(wù)的字段。
重復(fù)數(shù)據(jù)處理策略
支持以下取值:
跳過重復(fù)數(shù)據(jù)
生成結(jié)構(gòu)對象和數(shù)據(jù)模型時,如果編碼已經(jīng)存在,則結(jié)構(gòu)對象和數(shù)據(jù)模型的名稱、編碼以及所有的字段都不做任何修改。
生成應(yīng)用服務(wù)時,如果服務(wù)編碼已存在,服務(wù)本身信息不做修改,并繼續(xù)判斷方法是否存在,如果方法編碼也相同則不再判斷出入?yún)ⅲ摲椒▽⒉辉僦貜?fù)生成。
覆蓋已有數(shù)據(jù)
編碼相同的數(shù)據(jù)將被覆蓋,包括名稱和類型。
不在生成范圍內(nèi)的數(shù)據(jù)不受影響,將被保留。
終止生成數(shù)據(jù):只要應(yīng)用服務(wù)、應(yīng)用服務(wù)方法、結(jié)構(gòu)對象或者數(shù)據(jù)模型中有任何一個編碼與已有數(shù)據(jù)編碼重復(fù),則任何數(shù)據(jù)都不會生成,生成過程將自動終止。
單擊開始生成,待界面提示生成成功后,單擊關(guān)閉。
您可以在數(shù)據(jù)模型和應(yīng)用服務(wù)頁面,查看對應(yīng)生成的數(shù)據(jù)模型、應(yīng)用服務(wù)和結(jié)構(gòu)對象。
說明批量生成模型時,系統(tǒng)會做如下處理:
為每個領(lǐng)域?qū)ο?/b>生成一個應(yīng)用服務(wù),應(yīng)用服務(wù)中都包含一個按條件查詢的方法。
生成三個結(jié)構(gòu)對象作為所有按條件查詢方法的入?yún)ⅲ?b data-tag="uicontrol" id="uicontrol-poe-1fs-z2l" class="uicontrol">QueryCondition、Predicate和OrderBy。建議您不要隨便修改這三個方法,否則可能會導(dǎo)致生成的代碼報錯。
為每個結(jié)構(gòu)對象生成一個分頁的結(jié)構(gòu)對象****PageInfo作為按條件查詢方法的出參。
生成以下映射關(guān)系:
結(jié)構(gòu)對象和領(lǐng)域?qū)ο?/b>
結(jié)構(gòu)對象和數(shù)據(jù)對象
領(lǐng)域?qū)ο?/b>和數(shù)據(jù)對象
如果領(lǐng)域?qū)ο?/b>間有繼承關(guān)系,生成結(jié)構(gòu)對象時也同樣會保留繼承關(guān)系。