From 748ebad0c4cbba1f645223e1908362d7213204b6 Mon Sep 17 00:00:00 2001 From: iqudoo Date: Fri, 24 Apr 2026 16:07:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++++ ...-mybatis-generator-plugin-1.0-SNAPSHOT.jar | Bin 41277 -> 41361 bytes .../TapeRepositoryGeneratorPlugin.java | 6 ++++-- .../mybatis/TapeRepoviewGeneratorPlugin.java | 6 ++++-- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 58890d0..51619f9 100644 --- a/README.md +++ b/README.md @@ -150,8 +150,10 @@ + + @@ -187,8 +189,10 @@ | `modelPackage` | Model 类的包路径 | `com.iqudoo.platform.application.database.model` | 是 | | `facadeRepositoryPackage` | Repository 接口的包路径 | `com.iqudoo.platform.application.facade.repository` | 否 | | `domainRepositoryPackage` | Repository 实现类的包路径 | `com.iqudoo.platform.application.domain.repository` | 否 | +| `domainRepositoryType` | RepoView 名称后缀 | `Repository` | 否 | | `facadeViewRepositoryPackage` | RepoView 接口的包路径 | `com.iqudoo.platform.application.facade.repoview` | 否 | | `domainViewRepositoryPackage` | RepoView 实现类的包路径 | `com.iqudoo.platform.application.domain.repoview` | 否 | +| `domainViewRepositoryType` | RepoView 名称后缀 | `Repository` | 否 | | `guidGeneratorClass` | GUID生成工具类 | `com.iqudoo.framework.tape.modules.utils.SnowflakeUtil` | 否 | | `guidGeneratorCode` | GUID生成方法 | `SnowflakeUtil.nextId()` | 否 | | `changeLogContextClassPackage` | 变更日志上下文包路径 | `com.iqudoo.platform.application.domain.changeLog` | 否 | diff --git a/releases/tape-mybatis-generator-plugin-1.0-SNAPSHOT.jar b/releases/tape-mybatis-generator-plugin-1.0-SNAPSHOT.jar index 7f35abbe372f97f056ab8e4d9e2aba4e2a275489..779f5bb989fdf78db1233cf464cde240f128c6af 100644 GIT binary patch delta 24402 zcmZs>V~{316R5po+upHlTld(ujUDSA+ctJ=+qP}n*zwGsecrF?tMlVjb>&JYT}ghW z)7|MF08JPKMNpIh14sYy0~-1VqHlTv0uby!#F2p^{6h=T|FA~!ACf>onEppL5U&5x z0YuusF{S^~rG>%7l3nu;jo`G#QP!#my} z-oraWZ?jW5-QKt6V8UMlUw=YH)OdY1npU$Ire$~r{HWrDItSZbY6PDoj7<)sWIp=(2Tu*1DIikb~x{NJ=G&% z8DSXwdtOR4HqS;R7r)CD@K>q8vjCT>@Yr#-YPp&NyJ8CIa z9f~$ctze;SI=g6dCipqgp7+u!@zJS&g1bM1nCNN+enBmvz2DIe_B@utMY*WD)Jn=- zVk~>_qA?8S%{sH(7f3;0RfwpE^6YwNEYr&-ugsW(S6)#IGYq&q+|SfJAKDoEyvW?k zo-?fgY;4P(F<70>R3T}sN0yhtj2H`0iCJD=C~4zqBNJ(+66{2rKlWC*b_JySBH#^Ld@Wfk< z=O;j zt{&zY_G_(fko!}Wg^p60u@KsLG=xC#V~3@ zZKfmW*jjSP&y1GQDlxa{C18!VL`QG=ok#$mxgDq+pZMD#eSx!UFfX1tD5!VCGIW`( zV6SvZ>+&cGsm^;xDv27agydK~j+vfaPBhFu5k@+eeM_!T^W+*7kQ7`%1pL1`MGQw=$fJ2WenEb$_N;qIs5!s6tYb zz<6-dK03IA*#L4U`z#{sJ{xrakkrLa{zH}vZ02b|iz1ueVwq-qW>2b!0=?*m*$PBq zeS8f-hif(XanHv~$T*u!Nk~An%yL4dXg;P27$Zqq&-2ivm~xRcB3ptXpLE2?wolTQ zF2o=#P+l>YNAO!K^Lc=r&FjLBNLQkaOAwnptu4^7iH5B(*Ir+obFg_iLADLD=FfmD zg)S23&*Up6a>e^H*^OZ`R06G{H04-JHYpW4s`Q&Z%PV*od0)KUgx?)7sb2f$X!Zd* zK$J*#VJ1@#nDq`H0;Ai&l0JznxkGtVr^%w>ZTYqCC_Ppqm@TUT=Qf$)tUKL@wZJCW z_N<4Zqw4}V8c|mmP+B=le>JiJ&xO(vb(z}C)YP$V7?KIjlrBjnzRBR_K2{_8t=kYN zSr25whTn5DOPoyx|n3vs-6<_{nvLx zxi%hKn`(`ujRez07vgPO|Ix0yHW&pd;+M7J9WsUk)9?vZy2d2wV65CCcm}nupvysa zHI{7K9`hrT=ZvDvDzf(heCfuC!he$1cY{LHPt`V_hc<+R8@1ujkCTnI{^JESg}h$o0j|TfN;98#7P*(Z~V83A?tnSSwzORQ6l4zyzYfm zlp@9DgD-iW?m7CbaJ8rS_nYd7_lKp7w_M0K&~ukk>f#jw$)k|0Vy+TI!cqS)!T7VO za@!R7aY;s~2t>cdCmJaD>S2h36GvyY$z#I$zM7i;LI+? zDG2HN`Lkq!&Wd(+WcGIWd-ZI)0pma9g<<}h9o&0>RB`?Tb>r-nnS0f3#(Iu;fzD zU(nV`9K(muT>}9DxW0I4Q2nu9nt*lvpvL#%bX%rn%LEAcCfi{b!9$Cz^&c@ zT<@glN!yr`Z%mx#$a?KTPus2oAWXqa|)L`77brBKB4ukyo6R zf-2;!ZjkqKAR^S{c#hu1u3G8RM4H*D2Ip+JB#S_s!2{lz(a)HsU8WCkIWK^$%$!1EVV3 zi=v%*3RRy|qMIqSn6+2k<{K8gq-aa&xRRS$wY*PS-Q>~mOw=y)Wa!O~NWbR@^}N^{ z5GgLlcoL2dQK)IkowplO+o~uSCXc>)aH?40Jk|**CM}wRcLwd1xn+9RBG9G{?bMjG z)r^)+R&EYZK9Wcz*{!Sa{*YIi0KGG-@Gj-gapm0Z2HIo~+!-x9WcHu>_0^?3&dr@| z^~&6;nm^5ktA-}M(yNkF$T=>r-IQ+;&9?h6r;X1uo=wx6sO&E(mZ$ zmgJW$tKPD9E&;xMZQ(=qfJ>cTF?%M5mU`)19yAa2Ff80eG6}4>HOg6}Q9jYBPa?V1 zcg)%oSpj?TQu)CA)a(q~UW6>`1}o)0ttLfm{BmtB8eN$#d_W1d)Rk%7Ac{8l6L5*0 zO>oadl4g&jdip2p61@y<3M5UDmiS)opP3uZpHnpn%$`HQA0oSJ{lAMXN;f`u*Wh>NqChiL*Sj}%(N(yD_=cnMo zGvn=2_C=a-uxPBx(RotIw+1w`)fjF6qt$p^5g}vkxMi1Qo~fl-&rM+ z(=$S2u89rkX)ynswyYZmZnI`zai8gjCs1)fs;WDL)J60hIG5kQ5jvfdBC z9e3G#IIH~p;Z&66%SAm8p`;s)9olPuG)y|5AU`w=p;uBF2uM@!B z0BIMBI|^UA6c>>@4~UQl16_dC=UAt`QoCG!8geYf^@zgL~uRlfEYQXo&Lr4~t5t}4_5VksUvlsoxF#QEOhPi1=eMSw4nVW(0R z$Hhk_80z(cq*i~0*IDRNAc6c@njwXKsE$ETi3zR%NZ|`6g=zmBTsIgL6E>AMAuGd74S z%CCdx19v>A50D_Rn$P&>2Ix|h{cy@CN|uA&DEYxd6$rVDbQ`i`1AYwbD2HPPCWBX5 za(&f-fLw}Q#yh$;w@`<5m7DbN)h5ZZ`gGBb@8+1@*+UbUX7STi)GO2Wk$<2A$9||< zTCI*oQGugsRM^10IVJ`zbi8wM(=(ErOtm)U89rH7Iw%-RDmO^qienlmdQ_RZ5=Cl* z(1H^3MWMRz6Ag&(Y#x1#ll9thad2#}>+Xc@3HPM@%qROtIij>)Z<4Q0Ma3YH^KDJxd(OI5MJQ z-s(aryLSvGv;y_(I8U&f;Pa0o6HiXDQiCv6MoTYk#Pvh=jKp+jr2<$Nj(;Ta<4XtK z?6nnc#Myn0Ftso29m3Qp=f1y+HF#!-S;kUF?KPcEB#|a_(aR?auAvwLUA>9&0DKjy z{T;&f0D3O`)LU3^A0C)x38_jI6Gz$S)I&mv_3#n#O0exDMl0#L6!ZflXFVxdHn8-p{HtQj;5CmU9XBLR=-r+R>N_7iaQ62@|q%*%~uL0@_hB z#|DIa)WZYy5y)HEc!q78=boIjVQ&*KL3Ae}{eDl>piW9c9^xBXM+hKuD0)aSftVYsGV=z_QDHl??go4*4-eZ1tOZf+L3 z2zJUG$E;IOi)TrdI?K^t+)XbZ%_M10ts?Pbq%NQNx6W2PD2~{%=26M^%c)J?Us2oF zPe4V7cZ;D-)NTOwiag0H!f@_4!WB5&(hF0f4>LoGy56tAW9Y#nO}9hk%R3ogs^N$Q zb}8W~T9lC@f9Jz-G}%t6@#s3H<6H{HV^4ORoShY?oLg$ePUBDQ;H~5?rF!RXeXk2N ziHn_>i=0qURw9GQxnedauJMFy4%pq+F?vx+=*Rm_t)wt><>+_1A)g)Me#=`yIRI3oqzk+sYIh)yR zo{aTG3Gw-m{gwJNe!O^Ckv{8eaHh;Ix?6}oR z){|bT+{f#Oax9F=cf8@6*%W3RkxIPt=7T);D_aUk%BZir+x8O&@!y60qw%CTwogop zlPn)#11V%rK{7K+!-Wa)n^#-DMnv<{YpkQA|Ae^<<~iTTSyK}c)rV35$@~%q{?l}_ z{~ek*cTAgG)Q}FyHyntKF{5Np)ct+6l}Ek7H?QYg3>l4q?a+nIL4*dkKu^wrJD@HP zIfLleD6@sWz8*o6(_98PG#Q*r(W-092YDjUwjbqv%t)Dt+?{?)VT%O?(k$4TQt7wW zLT6TYB~2HPnZhFQM}3;Gv|S|nh(sk>joK2p^au6hv&ZL*@fn>5)3!W2Z=A7 zVr`$Y;kUZXJz2?7$0_}mN`V}dXZsPrv|V?@Az`pbL~On4zo&m1K}S3yK0%^wn`R3A z%MxCZm8W{@f*!qabLodz!PI7^7t#f=4_b-NL>VA@`bY?Uo#S@U64P*G9>C7^=Zu_Q z2IPB&&c;D{bAI8=#UR+$b=2>ePje$XnlHijx9P6aoFeJ z$3#R1ZCO(V@2`X(a4*5<06<1h#!7%ENJq#$Z{Odpq{PwQ$J_MB#R8cYT;8aI(4?|eK?=Sd7xLDr2 zH3ZX31GS#2Mr|;^K!45rT>C5DNxRozzip9W<8@N?Qrdp$k6Do`E2G>mSf0*j;euv* zTeT|IFy000!daCM8gw@xu(^G;CT}766tb*#xDO;I+Fb)Xu}AUa^r_<#jKa*ayd>nk z7_GG7@TPDaz1Dr7mVpG@oj@m*W92N^J+^xduw`|u$-GIBM2p&~<$8!j{7``hbj`n& z2jl?kT{Bf?+LvSGacJG8`BiMUWx0iAIcf27uuA^rb5FI)`SF1kPD%U=*SrP9W^%?!JIJZxxv{u^?Nk5yWnbAv7W@rFB0FApX!F6qMt3;DHCNcrWhdT+Sa1 zIi*Lz-}OdPYV-n)`0i!u7QT&UIXu&Kev%eaT!3GWM2W@!QeF`s<~Dz&J}V;lP_i(p zT>l+p{lZZ3R2&#}G;d5l!9iVaBr=4vEUhj#p%;-`U7b-=F}k6@%S^!`K)4?90@xy>w|Qwp={vo;dh@RRySDqOxwYqc zc{SjjN7VpnX|?{H2cu-ZS%@(22U32zNHe<&(K%1EB?iz?sm7h$6#e+5Dp*~-y;?(L z^SAC_z?oul=LY~9{n$+l#vAh(vnu%a?=3>wf+{Na+LSs4r5ium0tF@e-V~;MD)%`+ z8PxvlAB@}3c?5{-D1QXAQSg=zvT$N69q^c;36^81{oq+NbTwb3#Z%`xgRJIaQVWIQ2 zbU`f>7BLtxfWo2Xc`DU`rh1Iy;s7eUWLyDW^X|?-qYrTyxzbluUTHW1;A%S~ zPoMDz_waCTu#+AUT4c_Trr1a-S&b@bN()Mv;Q-R+94mZKJ;%wOL3Adilc~fdmIbkm zovASe6-hT+SD2M)LoS;uSEp1o|K6ahxGuN$R;HJ2CQ+mPy4-&#`1F1R8lUpv_vqe4Bw z8VvZ6DEv$zcMBz6C-}7+_N0rLG!}0mBv=;o?TFvZhlc1sIR663_5Eov?C$O{V{>KKmxS4P;{sj-QMDE#I`=j^S;uuy^n$ zSZLCWM0`1+REa0@HW5S!6KBYH!3Nto_IJwS9Nh4-f;8h zDxAy)Skh=6dn<;Rgs`wuJ^9MA<2wzPMFu_Hqz@&xEyXAytK<}VW6|^&DUlU4&2$l^ z$5<@PM5Alwo|RbqVlySmQm9+M+ckNc;dA1QUbui+*k428)sMEgBnH*sH8Uxv8@}|r* zAs%-e=>qkzis9we8I<-tLjn3L{2Yjj>&TGdO3)mRY)Md@jxD6XKc_y0`78V$b52An zR4j~v!$gnGq(QZiPAav+7VZJ$mTL`;mhAGh|1I+mUPP{Gx1Excbm_7q(zvj^e^XD@ z)>)HmL?cGIVTcUQ9~XCl6f7YdP0L?vnM0f!OEf(j8$Qj=Z`L-C%j&8T(B;6{U|Dvw z0iX?P#FqkypN0c-oB^qX~2rN%dusfvZNXAj0ML&uo z2R_1SA575+>po~3CPRqMKCGt9g&(1P5a%A^>yMk@+C7Hit|U6o4I1EwcI6aQUO1IF zm&B3*2D24_ZG;CUjixZc9_!Bpe4PK|5Fd@F<&qb39zY+L7xXqh(RWBVMe`>nYOo%h z$uNl%+gP6Rh9o{|YzW;!X(LzcO@4vR3bWo-t6ysM4^r=>lU6ckUF+X3mAJMv9GLKBitA?1XK-Lh?}EGu=XM z)ex_uNhieb{L8v+`!jU8D9Cz2S{+QKTIbD$7OAslz#c&}-Evj5nf4LyH^@sO#iD;V zeaCTP&FJmC3%`9wF8DTKq_v>j@?puvyedD(GDu>@>g}>>w>_|8r=-o554(&IUS7Zv z@oX8)>l!3%48+$jk8tjka4yXcx2GiZu|4eZeBbBUaq!3y=Nq11H`Kc=y5uBnza*>R z+Ea3S!H@bwb8bs zkW6jS!MdU(sRFo;uC^$*yre3Zb%8C-zL{5DZq8e7&MD5mDaWp(GTl-ho207qs$*F} zpRKA>lx7XbIgOcV4wrQTF3mccS7>#@Wpz?insHc?@vpzeMk$?1|3%L}or>5tHb{*t z|8R#4rR$Pdy@0T?z^^IuPrU1_oa@xT)xGM}r*W%*YVZBp?NBzwP&Q^rZe{p%t9g}B zlX4YG%F}WR?5lF@8YlDt0C+)rqQ`@0->Yb~);69Kwxa^HnQs zo4^jMmSwih4K@qu%Ei#2@OSSZ!%5 zxHd+7TM7|3V96%@vh7Pe+A=j^I+hsiKt#ggDKoGx*tmY)IuwB*%6%OVSd`q6=R0`% z?z~~bJNz3k#seV_7|Fg#52mg_*E^bTJpDnLJ=ZSSoj$yMyDqq$e(!xfAN-v`cO$fK z_^b@99gFol5E}%d#veWduzM;kM8%kxnln-56!1iPWv;+XH^v|Dmbqw>FL zZx{e|jb}k1%!n_@l7>Cd#Q#boz${Jw?csaPpY{VHPJ);brFEKJ{^SR)bZA7z3issC zEDw&1h0re??|T9xAZ@kG@GqPchD0W~sdz?LHu!O0(ZA|?olp>&YWjpnrn%NMV=+d8 zxQ09+!f=TWm=1s8+xtX8;r1R16C%YvH1*HtqT(N(N15;kIc8gc%Rk8u0Ht$9of<3< z~`1#y*1Z8`+~%J z^YLh^WhFeM9X9d(*mLUX0eW;z_05}@)knZ*11L2&K~%ME=`+jFHE=wz44_gJ;J9`> zWwWW|f5U&W-jX@7r0{XgJ$7=10Q9>if2DGz00c1at{CJCl_7NuZIS<$C{uWkl%bWX zP)E75yP;Vqjvqx0ksip>m_43~RdYoF=*2YZv$(PV+{PfgKW7S*fim~Rc{DS{%Csh+ zA0pY3#kz;)ZuMMw0MC(I+x#|vK(+KjUIbkEQs|LaL0dS$PC627cv#i?lpp2>O{Q#V z=L51DnV}#t@8pf%$Kv?;(|O`cCte}8*feFuRZ~O0U4JSe(Oqi#p?*jH>Ew;|!O;(l zA$is03?M_(4NlqxqR z{ni(=(gc-foR>Y`H^Ur;>*x#N3PSA9UjOW;T8C=9bWpk?U z58hl9-dr5sTqNCGu-;reW=hw?{wu>8$e8U-FX7#`joSjAQc{q%W(AxCKDP1_wock% zV8{Q=1jzCsdF{Q`G3x*Lx);HY#2OR}JoEIR#*fnIgYY2Nm3Q=|*GG`K$6fPZMV&HG zi1!0y=|W)z-cw8s7oUyl)cEoC`XRnzZ8175?R?r%PN@ME(xZ zrmjm~Q$qee*(RkcdM%rIZRte6Jy~+^7o7Jb@K`8jaO2gZw$R`L;kWF+8>bbdQ!+7) z5ZNj?nc@y+-wi);i# zG@mdp4DAl04cj2t`wrtLZP@ZFOIJiKO|^OwFuQXw7hakOGQ|O7l^UTXjCSbH0p!A- zDVNAr8Ji{&RCv}|E|k1~_poyFxJX3ghEoz=fy4SHr$a;*HD5l>wy{I78{{`$^uquu zqy0K!4Bj0)e+8o(C8AFI3nP%P z`=#><0RkMxY{TF^;4lLtr4y!Xk}RI2zgChCWKtnVSW#Utl=}~f`8P`1C;m|J6b^%C zsT5k?Ea~vpOSAQ6M}NE@*Ipqx=DQPC3nT3KILafoc}7dz39}L%%SErCHh?;%oPLR; zh%%bOguDayd~pzenw1SiUF;6q(ODkWri%B*P4=A)5@WTawc)3vIj6RQLp0U*ROm@- zK;jlw(|cAfFMT>NKe`cYjg;qA@)5?ckSMH**+tLBu+do%gEIW@r@$JmnB7nx`w{5C zQtM^g!p!=$%?DJPgg&yH`+yvDP`vf2ZIm`4{F)3mGR$3!Hihu}iZTi<#7~U~1$mKO zvMH#ca|+^G1pp^I=r7f(XT_^)YWpNBem)3S>Yn-IpQiMk3C%7)ZO)}u79y&OS+!*RtAJ)m4XHj2sSKv{ zdgI#9!IGMs9ucmkW?mp#GQ?UkC|WYiS~4)t7R8$V6Zn{{LoMmVEyM8j^ycAq%%ZkY zIL10t$eYH`tC)|adag} zTC&_)vIY(5ex}S{<3MA`_+fk@OxAchb7ZY4!-jO&hIC?6X3=ru(1hXWpHVn({}uq) z*3n69k$KOH&DZyz-+MO=x9O{nyXJiGr*tH3waNG@r7*!4907Gjs2T9`6Jl3ahu^&t zJ2ocxh9?XoRc9A<`4v_*%DV^=uBN=#+o{mxZ@aHVf@O>ffpmJ2cgUT}JvG*b8k4JC znK!P9HG(D>ox;7SGfhPFa=yvp_WQGzhON3SUn6`ivRI6hChlhk+@7}W47tgp>SqT7 zd~R_JD<}1kYF+4jGOa}C>ATj{X|n8{AEwMQ7^@p-dL6!u+@nxWx%881;|K;%8k5#Q-6(X%7)+zqFs>|HVsGqCN9(cHde`u- zJf3NJfdODTRfff}nBRGQdIxTS0q{qT^=(0bj5c0;`kNwUOxwU^T-y)Xc- zUs=(97=Y#SxT0w-kcdXFaBtL9kZP{pd3*e)Ul1jXb=TGJYe$0g=g5Cy-0u~hhk`V{ z@=9>&Isz|$PCFI<>a`%I%N=lY91GMQ=_&17phv(0xOqECXz^PzCv|R@7Wt?KIJL3L+#OtI~_e58V#@nDKlXxIXdMAn!y$S_FNi9c(su{V7M z@CnrmA*!pqhjK&so~kj?Tl-Um*O`#gkfrI+l8j);*=Tfy$q~9eQBt?Lwr`75Y3^R9 z?MBI)MQ?%C*tyni3-OV@Jotu=`wi`V*=p~uabZAf@K0cSbHhhnL1P4MiFnYy$y)psC$ z^uo(nrHs$01qhpGe`1mT3Xk`s-*F&rEQK;lqNl2~J@+V=ohwN2v^Wh>UKn2j{t{*o zI|jKiF~o|!fxMoZdu3Sj(i9xthJOLT@sXSyMZUxvRE zSF)2o>AHh5D#QwWD#|YUm_HFHH<>uBA2W2W7zb*@3bV3KZJ2Y`@bn^+bkSnyb{on@ zE0qbi`=X5flfAij#ihOH`B#1XDAd`dkS_t%ode_caq5D|X3PrDFwXH5j502A7A3 zB|yNibs{J=^Mp*1@%a6MzHH?}$nctc^; zzud93z|@*#-CI2i99{vzQiladEdQqGf1z=N`vM%lar)m*lL0_s>c_Mz^k)p=56r;l z+I6)nJkY3hjhfudtqZikGw2IDX&ZE&HA7t-0w>1;p)-#qCEM z%y9SS!ujEGazQ}#gnGYu-5e@Bz<(pm9`)YQ1@P&Z-eHo2ovr~Lzmoz!jy#e$bpF3z2to3KiQd_3P7|w}zG=)6l)H zF|NteB?wDFghQL!2bDsvwW4h3F#i_E-AgO&SR9I|cD!+0!(z$2BF>tcqE6F6-eelw z2=^F6B#1+a;sy>KfsT$B2%_;k`I7#Dub?eDx*u$=COmh`z8(j62%Q|MTp+=#m4EeW zIHvQ>sjg)|_g*Oh<5=&Rc^22TD2VRHI1$1*y)c&NflkkY49WI3VpC?D-m2cic5nU# zB?{}!gMBidh#0EHg06QR?xD`aMu5Udj?F_jzAYJv3cJNuvsXO$x~4^2%#1E-%~93tM@gvj3inAoV()5>rua>Q!wT{H{&AR+j1* z01_lB*IJ1#=`%$}dM5L?hOTrWxE$FPq_+ma?huyz5}Z0AAfDjuC+XqU9pN2x<@?e4 z;NubO9#HC`;Sq5Q<8W_(2XY%5h?PGMSI^EkP}7ASc86MZ%BZf=c@4XN!J22*iAJ);4%5b`=xU7Jaf%cmTN)7l`j3hpK;h zGkoSI8t6F`T~`-~2Ay}z9hSV~6G(L5gSuz%L9g8_EN2T{eW>>#BpQu7Jba_}0Ts+r zII?*o`=-d7+C5cyJ^eKNCJ+pEI97o;T@=I2V~`U04JIh-vL6&tr-pzn_x8snH$$EumH0*Q_nX5cXt-c8DansnUV$-T`}^GFAUzR%s|((*_OUSgYb zQe&_Et^ACGThrP-FHubJ_EC82MZ*8?BRSKPSV_?**YqBS#VNj;TD}nx-9UA*$v}>i53LwmH+%;(PgCmVV8`r_j ze?d=KLrYrcux=XgS0=k zV40aU*7~$f9i25Icx|tO6O6-nd|dbN1Ie0TG!^z^hI=HZ8(>s2Wa)pv`)JbD1H~;X zDhL4J{{Ju)4jQkhayNdL!`=<`PMSTj9hN_;#IrLXsP%20x`$cIdsr4cPXsnbZ5P%e z0Fx@Kza`r@e5W0O?5@};2J$s-5bYZ&N7fn%m3neDZV0kRtNpru{7a8`dzyZv*;8o) z%b(^R@w=dL_d5Gpet2CIY5kp_Zm-e1FuM=OceIpQhwdg6y->g209!G&13o>tP><0SCcA#!5P3C z8sZC0<96kgTP@3G_k`{LrF0avVfmQ1ujU@<&#vF7)o$Cg9cK0XP4=#~3-vy}hx!h% zx9HBlyTC#R25s^`#W{DnBJjHN(hl&8+rO~2Z?hh`%_eU0OWMEiwQolqxiKbecFO|o zUtrs}D;+U`2n+|cgDIbKn!~#!t=?H%Hw3Tgy>L3O-gjubV)icr?b}dCZbS*2zOwc& zFqroWPK@6;sgJWxxPL({?ilY)zcF^ETjMu<sdQk#!qLtwTL6FX5i7Es#jjyyVTI-%Xjs*8SwovScsH1Lbx#esn*ocWrSy zcAvG8aIekFQm)vjbZr!_=Fwdtkm8ajF{emnMd!Q@Y&c|%$(g=?Y9|oz?I#Bgmn0mJ zbJo^=7Wdt601>%HC<932dh2C=Jfvo zKrttPV1>)J>6-Tc83^7KN(aG8LY0|l7Fc%jhUh3crI^J0@kwfsfVZZ__zGp@Id3k-_ z^+g}rpmslJC1a4j6Uy%A8S+B`faVFrxr5k~ArqGYEiWC3WiuhL{*(b>hY}I&>xVi^DE%JzU9p6o@9P5rgZ82hh*i zT#4Njfmi%W;{qsZ!T7|I@Abp-f-P(3qnNy3YsRHSI#*97Q8|9L^^0*YDhbAkB9W}n z)cQ>cB$A}V=A&^ApD|MRKtZcl(=Y|WkJF$*tiMu@uhwb(Mwq|=(eyqej(|aY&@f!k zuy$}nS8zm06fQ9sd}DA#C(tl2&@fMM#77u>Ok^%PGDl6ZJx8{HL1u8oQB*E`$vsED zfI%3K8qH|;@T5B7>}aA$l{*Ol^6ub7;8;38Ppbe$+Fu`KFMhS#r5oe+6t zvL_i(PwUwad|H6|x_!CmSPfXi!&h=nFq>oyuKt7Oc=#Nfdv)uOVbdI3wk`cejR=TY zc8(t8{Qqrv2YX@gYtZQ8bpFSU<7Z&>J|`Pjn_n39{eED=!wn}0Lb>2TQ9=LQoX~3R za`XKt_~&NP@ACDR_xD2AW^}nfc`3gUsx2=?kNW2l(Sg1Y)b9Z0C$*xp%7SoP{>nXeV*L|KavB3 z(0ZoV1)LILdJ}Vi?yjiu93<}#;EOq}9gve~1KYcc=vTK-)4y`>&TY&md{qo|igHSM zqr+35tHf(eo^ra&F{{~Cc)e8UH=CDNpWi#OdVp>&2#ZI;NcEjPkWcJ_A$}UIe4Xp> z$Pf(Vxl5*zqY1H#~QT(2N`KPihKe8Hw8`?x#NXp@(d3r4eSvoU)DPAembt6(z-funn4{Gn z#s}WxwxHFTSlmM*VmcfI9MEU~+!?VtAjl@(8D2l&kG#xsOjwJK8vgL;c>OVpMRXu~ zKz7``x;^_;l-`x*J!~2CMj61M5yuuD1z2L0-+(AmM!McaD6&*3Uz=VjsUI&11FVeWkCS z%{oVeROLARxU_{g-Hs8qZDUT4VW(N^A3=5tW=@`F3#|`l&dxE3Hk64@uuXCLsbdjs zoE5`-#cDz~%Q1o?5J%~gEA+~jaOa7-|7bdJN*z24g(g5G^2(QT=ZU-j=mH!#6@|$| zBJ~l-zI%fnI3i|FGgSPwHa)4&mMr#*VB%Fzy!{MTTIL4NxT`Gf4M z=7nf;ea`RnU);6qmxjOaz+3y=De(c2`&j)38cGg5)Ka)fkf9wT%<#k8;Iv?a9vLhj z8L*D`nkN853f9u)1UR55uz|mfGL_(1qoL_IF7{jwsknB-6KjX}1V|AtqrG0|(xD7+ zANQe5Kt9ds#0E8k*GJ~pMz|n(aYhe>N1To{{*v_a6w zepgKqwSc6OjCbn)Q^i?FMFF&JpAJE!k?uyCrKFMW1_=Q{mTqu~r5gd4?rsDmq?b;K zrI8c_c0qbUn$O4gJ@0p(IcLsw&o%dbX8xbKe}VeYm0b4uKOA(l-Br@P9c(>$B6`U z`#`GC@-qKjJxII3xSO3NxGzfWc2%JATMsQWV-R>T^@;9A^zJ0;srym#8hQxLfDl>8 zDS5L}!VKRl8vk7=D0$OT!YKlVL@i!?js+BA{`@{D2u0*6Z@s(nD(g1fW>racQ99xgG_rq62#>53bye@#o1bH9^y%?5m}*RlQJJz z-W50ALT>7i%kN}FbW^#^vRY0|HQ?>3+||kZwMCRBX~~C8eqGDzb>mRUCe?w5k+{^E z3sHp|Fgs%+s)~m)@lW2uA&al@NM}c`qEjh&)tbv?gXRZ$b$pbKg-?xstV(T7U$KV< zrWO;CHqIZtobiau2*$&lJQuC`;#dti95V07XIF{}Ra5@Ok}nSsu}TsQMz6{7qxFie zbY^jVM+USEV(6^r-ZMJZq@?SNr0ZnZ!csJRO4y@xm1F%=HI?yNi2X*HMSVzrNhr{Q ziyBBY99nSOfq*o;cFyC@mY3vpY|Jxz1WDJ8B`G2sv~h!9W2PH`>Y5I1*| zMZ;AC=0mo9v!#v_?D()5SwWaC`^n*8?N`@y&89S0y&}a7h@v z_^%5X=*PQRaX_B>zQE*E-4u>dxe1E&1n zq4i?cExgf1%4KGd){wgy>-dhW^E-K52HsEZ)V@Cg1lq{LQ%pXrDXXew%{$Ej4s5H% z9hNDaSPlmX>(2a13Heiuh+_#`O>`R>6^hf2w(p(~D03~{Ibd77n~ekmEEFk(4C$k6 z-XWS@o6KVo5pgMjrmMhfrp#+SfwKTYix*y1Nr1Tk7ZAM#0jvC&&S^wkF4jkxuRpg= zw~uJGk_h<`)kr){_p*UK6=JcD&*y>O&n=v0v0XYoN&gytRLFYoF^}-I;dDvcR?#bN zU0kUhKre7AqISOJUylK!phof`5|#XN7pUWuB$)GA?UO1!7;|iKkwHT1HnYmk9fqXF z0VXv?yeeN+>{uw&xC?P1t{)_9DmSPDm|+cyTdRs0-(Y!w^*4Sc$0@nAc;T0o@@Z`0 zF(AH>9{+&KPWA(w?xa=kg5SMrLvy@WD3yH1tf6mS2%HJV(_w)D>DI9(7eqO9Wcr_0 zNYwyp3h;xK>H z;prkErFy3U8V8qGASfMzXI2KMb2r#&MGk3eEzsF=F(N@Yd)>a?l@J&DVeStCThB_eN~7OPxvYl~o?S{5U_XAxX_!%D4+% z9gE{qFkona`~eNMLx>o!K0$69o#_nqHvj&nOcP4n_$H?&*T9X5%~|ty63#GB{5de^ zbLAtsi5PD?3pzj&Qv>!rq${oSYJ6!% zlv$G{-u?SsgW+^PeLr8d6YL88hSYL^ zt>zEuI`Z80U;j=uwgG52-f+ZnvCd5PoABg&zVHvkZ~pjWYlRY)j1JJ=@hm^fr$<1< z##`f`xQWhb)1NunF^~KR%neZ}9azkZpit1vkEH?&>m-T68ivwvA}6^scrCidw;h2s zIW+XsTW0G);OyC={$8Glzm_rfsGfCwcK64dL zX@@N3=6W*RyJ#{oA>y4}g_?NvBTXIKI?H&xizO4ghn4UK_81ecN8wx}Z7(;N@%^_&fnvv3?GX5;R7p0luA@Ql9hppv#)&=RMJW+<0(w?(QsD z0DL>A@}cwiGsn`$*_{*p1pPg{{#_zxdJj;}X_}*|`~&&-pBw9FWub!1*J~Qlb!>=~ z;4!UdxT+#Odwv)g8+)K~X#Xd;jb*SETfwsVc{y$0_C?k(rz31iJSY6iiP;)~D6K@b z#oD&J(etl3aSd(yYfifW_LP_iR-bdycxExe`2|dgB-K0qh7!s?2R78X48JG2{QW*;O(}je zBu=Y{3>5lZu9`qe0-bE57I=Xspg7)}Kp6@|^u1$gZ|h`lDJlLc=w39mT9^{S7593Z z_&1k5Zr@Q%JjL5UR4z;@vlS^q;%H?BI&F>~8 z9aKrpbU6p@bX=|l%S#l&TgY-|Rk=KxPY|=NKXOlW*zxtU(gbXI9Lbw)3N^0os!?2D z6l=T1wiF?sbZ$`QQWP@mrh2gK!ah@)$;1qX{^--RUce5eNRjS#2$tC1;oGj-6-W+qy@VUPp!d(YrWkp3%h7YWcr1L^alvRj_YjK5J|kZvxK^X zuC`{$nq^e)r(*LU9hJVp3^VL_hv>VZ2fZr4de2JScNl4m+4{ALJ+N)i3`8RK^EBcK z`h|Ga(T^mf8foQ85>DuP7WP#9Skk;|{?G;1=$eWpd>|KhzZZLk`mF~yZujKd4Qk^( z(ZH*d;O^~cci(Cb@Mgnp?VcApFHI;Sx{--t)2WwCy2d>dO|N%tTY2jW^}$W2E0uwn zP$8lgJ5(DD-|?Kc*Z=xGTp8x|4T9z5Q`jY0WpqUTc)LlMW^yk!cc!31cWc!?^q>({ z>A)AL7)`L0C~(CR_r68l5XKD+e%AN8vP1mgf^y#WOWYbOctzqC9}c8D5Fvj((oDlh zwX8TASAix~#B1PtT9qy92q~#@CcDE}OB?I0mF1$tafw&%58W{Nj*#u6?{~@~_4rH< zri-COt2aFB`Ni;sW!xUExrqexC*ks#g?f2qR?a;Wm*j)1k(UAybkIuhW&!|?gvMRh zgvqj4vVRi-A8@Ra=;@XK^>L~~a{`;Qpsp99*EuM5{fO9V^#N5fP0jWmXvp=qQj8}+ zpuIPJ*5Y{f$&Y)fM`^B)A0!L24d|1WCgP2qH|j0D-Ed2IMQ);F)Wa2xtZN$5{pOpm zN0t@z`-vbJ4aL$729`}X6`qCEt7TdRXAW-9RQX%LVfDr1aS znQLm8(Sz&eI@K1^CTB^Fn8utj&U{u_RA zH$B9m@50PL06cKi9v*kG?eM6j0SBzE*H?t4+f8@|7p^;hZ%EAAemPX--$WypBd-cp z9_EhJNHZ_kGaF0g^J8+i;S4fH`hF`p_K?{~1&m0_!&-_I6>mZOGA*2F0gIy0xq|GF zl9uP65)TZe2@T%|eowb)E%KCNLn3OZ9YFAao5ws>3bgR_qh&@fZQ7po8xyN$iP^|s zXr0fM=ECcVvd&w@Bnf@`kKM?T%FbZU5%sOuzkN~Bpk~q?<^h?|MLHu~T)$W~)Ue## zgLm0M%T}sIayNY;ic00450p|5tPa*^IcoCWbIi-oSFqn1C;MaBBKNE z2a>gl4h9hfi9X;=h=8DFFv-rkZM$tN)qvi&i9c<*e(0n?-Op@jiM;kC7S9Rt6%IK zP}X#Q<;#nc6y$Rmm+)K%rN+n$v2duB@nyiSHpZrPzq+brJwlu`V#s~!+16_Mt6`g@ zpeWK$m-a7be(da|pVlhtjn81o5fu%3LWABez&GbjP#8lzm{#62Z z$^>6Cba)i_fM0kU(Fl9C&@dE!F{eUn7IqWWU%Mw~);|-LItT;JG(fzTM!tq?%0$Rkymplz+a7h^)Dx<8cwVxO%oRz#-5O z5g{d9RXq=lE;mS{Yl=oQESvi?<6&4v7EoDT-R%2fL5l5tBGr8!Drzj7o^-@{O2IHJ zML4#6M)$g&2F++jfV8wq>6QHouL85f{Lisr9$P?V41dK=qVwV?7z2Dkx+^ad5M?Gl z7F1)bcIdx@p_93zo0bA55fC(P(e7WSk zO}%bag(J_`DDG%H0@2lli4Y*~t0G7xS)H#$B&bq)fcNcXI{r;d{>G>je0RqbkDR;a z4tN>&qkG<$nr!~Ke{`6_q4@P_vF+)bN#5y*-SD zRm6qkcH4;NMKLgCSd(L3SUT#n5vogvUCQTQwC}^!G=IF#!f#KTnYF|e{OCVbU9DBq z>eYTD?BY7XP21V=3M$;uQCBG3+ELfg{K03^Qf*BuvdmTplh-gT7dKH@p>3D{PL1_l zZ`mQP*o4?ZCN`=|jEEJ6fsN_lQz64(n88wjULIC98YMMY4|w5seE$1aai9-YvvX2> zUHi-P8cEF~UF5T~T!J#U`sqLWOUOCaOUy^KvPUMcoQy^5p&VD`bp3jniZ-fz{miOl zl*YXadgvt~2>oR~y1VmW!Udt*l(GExkyZKZ_dNWHrvk!C2#b5`4)$g5SDDS^Tz4vm zq|?&myR-{nhgmY5Jf#xYFA4D{${kk!yG7{^VuI_?-Gu~ZJ;jx0kj#3s4gGo) z1%2I7g{0a^UqSG#Nl@_K)&rmM4C+Vb4A%lK5unWb9R?s$c}GjYEc-JpVGJ@0ahio#9f2$8KZ(`&Uf0ept!+q4%oyEXpn@!DR0RSC ztQbff=kG+zE)D^dl|!-!H*C1y15(*f4YBGtwRw+u^MKTrQ+hGJ*5Wli~?s zaNFwRSq{IU4D04>@@(MxZev(!N(QQpi%dg^ig4?fXL!Vx|82Yh+QWoJH0Mgh!A1^d z!Rm9(Ux8-gKr>U}SDJHZn&8KGGo4hFA#km1EkDNZ8|oimBO%vG%vw??sWK|xW)-|; zg3vx9twAZivrBNITY{iCOZ2df(h+}}qdiI_Fkd0bOX}!nWOGKw97$JH{xANc9XvQ^ zPh9@qA)K-&OM2qZtk*s6EzL<8c>2N^@o__&@6-v2860kD5bXUaeyEwgXyIUwzIn0j z?0FsQcvAUA{5bbH0wg_R;#3<>-#sk7qYhFLrGG0 z!drvUowLhD>HOr-#hoadZ1x3;oA^PDzzAq%0{fqfl=IhA+KSYD)M)c4VC_kzpm$;i zhe4Ughx>>-f2`joKeI{R4Ar2U>s$Ti+nDru2<(E2K?}5X!27rHQf>L$eJy=u%hMOK z^=$>(3c|EoZ!TMBE>~APHB={1Ys)c-d|4lfC%=>?WL#Yc&T#2A$K9tpJBCc_967cq z1Qd(+atmT(`KL)z2rb>lgRvSHKFO!T?;7CTl^a(j$d6VBDe}SpZCrXsMLR(lHktE)ef{ZL(uNxWY8r zxhXci9J3sNF6ET#7C{(bRUV({`@N~}%MiTR1Xt}7(EPYK!M1ve9n=J3ar*UQn8wm7 z2;L@fUiu?k<6MWsZYHNanHUYsGl(#O;;!VCnHzS^&9jzah5)n>-l>7;S> zctx)+dgkGc-G3HjF89LAE=t}H^lTl$>0N==R%GVXEbn*FUz&L=(9cy!bskP-T=cP` zy(~;Xgt>}|8<=QsSHWY!k?>;ji{+yH+Dma4pv7CWB_rMrisxLE7rcF5#UH8j*z^9p z=L5M(+^3y^cTM9rWVX9%zV5{i(Ul@fvOqq7F{d&tCEqqJ%?J0z`5fd0`9qgTc+P9L zrD@5igw3*oKkpL*cx1{=H!4h|#VQ-L-@E^@KS9opmzeeksmajKO=}a}d6z z8a(FQ=gr0?Tw;`%D#m@C^J#mh3im8Psz4>@nnf`J3;{|O$bT#LZHuOc2TP~X?S4d( zY&msF9J9~5=LYH@ zUNn1Ofn{sfC+UU_@}!(gG}@DP^HL~Fu*>^%%yg;RF-O&S`igRQR(wjX$`uxpRxE`| zL*^}Q9qR=w>XS`>ENkNz`)(GtXeOFn%v6eqIQ|XvOBUxt`2U4&_cQQ7iSUU&7|_u> zn<}qdsiF#&#rVDHS)RR7%({}Y!UJ_Ec;ZX4 zTuG&1r!HbxXJJ^k?`kH)pS$}zE+`U$)YpRXwP!qZC2H?UZ~02{cc6=Pg-l~fPw&V3 zlUVf&^cWPmra6J??PDu+qtlgW&8U1F%AC^MjGG2U4xEp5OoULsG_`B)OSeyflXJq< z1qlendVub`PVT!O!ntMk<(Opf-ZGq-!Z`B_=BD>Ao3v%1h2D7uWryva(tF$tM|VYs z+(m~qg@-jjMk@tw4+)bI`r^buDW9|Fr28-Q={FTAE+*BCz1H&lIe!!LMOti^HK==Q zzSEZnD)55xD=3-)`Pi84Pd}`{LcDD`R=@Y_>y}6OTE^B<39r98lovp~Bp1dmu)Xlu z$k((urmSc+Y-K#p#$^6Byb!#8yFM**xG#Eu7m+FxBwl<_Blu_t+HgC-Tkq6-%#%BH zqal65*x!R*T|h7L0q0j#n1{a9mOgF?eo{h{m75#^$@X7HQ-?BZwRYpc?UGf#y<+Dp zBdJPs6@Pyu0;Lm&HclAmH&r1wyw6V8g&`+$Zvyy4E`m51k1H&LLwI+vbu*+QNY=Ed zdJ)ciGWZ%Y#on8-j(%*kBX>kg&t`&`-Ba_~=V+BGV3<<%MSlS?kz*ekjm z?;&ryS&B^y2$k{^eYSxBeWa>iUujZbX{Yt9_CRUUKxx3c*=~LW2|ohDkC4tpa%Lh; zGm*edBxNR2=%iY8=LhEtpk98mwcbrtdykGL{BR}vfMOKeg+|Sbn#|y2R-$@p;zYFk zlG>A}Ua6^nVQwq3F`y#=74w3kGQ#S6+i=}kM6Cem7eFo+%W}w*yTfp(a_|Y|zhC>B zg7@+NLv(M-i+_doFPKaW!vDu|*UTRJr(`+*!*(~$5&p-1|CGb`PkVC!|MVtD_Mg7a zRr#mUxmy3~mUAWkr#?^npMJ=5dH!E)c*xH@Yx@5<+XuaOi*zU`u4*VKe-ZBgH%deI zA=ddC4FAdbuh+=`%RoUX4Si_~Aw;EsoGRc$PV+hcU4f>68tpdtpRH5C{m%;iYyFD< zUyA_JTR{EK-uP>ie)>O~q3|_o1H_`xgyApU-u$O9y|~HWv)=xlI{$TMYBt2OPz6F; MM1^IR^Pipn2Xu3Mp8x;= delta 24331 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 a-%&7fK?tI0keW0#h*vH)GIIKVZ2t#!yjF|= diff --git a/src/main/java/com/iqudoo/framework/mybatis/TapeRepositoryGeneratorPlugin.java b/src/main/java/com/iqudoo/framework/mybatis/TapeRepositoryGeneratorPlugin.java index e9c2fbb..03e0be4 100644 --- a/src/main/java/com/iqudoo/framework/mybatis/TapeRepositoryGeneratorPlugin.java +++ b/src/main/java/com/iqudoo/framework/mybatis/TapeRepositoryGeneratorPlugin.java @@ -22,6 +22,7 @@ public class TapeRepositoryGeneratorPlugin extends PluginAdapter { private String slowQueryLoggerLevel = "error"; private String facadeRepositoryPackage = "com.iqudoo.platform.application.facade.repository"; private String domainRepositoryPackage = "com.iqudoo.platform.application.domain.repository"; + private String domainRepositoryType = "Repository"; private String guidGeneratorClass = "com.iqudoo.framework.tape.modules.utils.SnowflakeUtil"; private String guidGeneratorCode = "SnowflakeUtil.nextId()"; private String changeLogContextClassPackage = "com.iqudoo.platform.application.domain.changeLog"; @@ -56,6 +57,7 @@ public class TapeRepositoryGeneratorPlugin extends PluginAdapter { guidGeneratorCode = stringConfig("guidGeneratorCode", guidGeneratorCode); facadeRepositoryPackage = stringConfig("facadeRepositoryPackage", facadeRepositoryPackage); domainRepositoryPackage = stringConfig("domainRepositoryPackage", domainRepositoryPackage); + domainRepositoryType = stringConfig("domainRepositoryType", domainRepositoryType); changeLogContextClassPackage = stringConfig("changeLogContextClassPackage", changeLogContextClassPackage); changeLogContextClassName = stringConfig("changeLogContextClassName", changeLogContextClassName); changeLogEnable = stringConfig("changeLogEnable", changeLogEnable); @@ -136,8 +138,8 @@ public class TapeRepositoryGeneratorPlugin extends PluginAdapter { String domainObjectName = introspectedTable.getFullyQualifiedTable().getDomainObjectName(); String exampleClassName = domainObjectName + "Example"; String mapperClassName = domainObjectName + "Mapper"; - String repositoryInterfaceName = "I" + domainObjectName + "Repository"; - String repositoryImplName = domainObjectName + "RepositoryImpl"; + String repositoryInterfaceName = "I" + domainObjectName + domainRepositoryType; + String repositoryImplName = domainObjectName + domainRepositoryType + "Impl"; boolean hasBLOBColumns = ElementTools.hasBLOBColumns(introspectedTable); // 生成Repository接口(核心修改:手动添加所有方法,不再继承父接口) diff --git a/src/main/java/com/iqudoo/framework/mybatis/TapeRepoviewGeneratorPlugin.java b/src/main/java/com/iqudoo/framework/mybatis/TapeRepoviewGeneratorPlugin.java index 0e5fbe1..6cf7bb1 100644 --- a/src/main/java/com/iqudoo/framework/mybatis/TapeRepoviewGeneratorPlugin.java +++ b/src/main/java/com/iqudoo/framework/mybatis/TapeRepoviewGeneratorPlugin.java @@ -27,6 +27,7 @@ public class TapeRepoviewGeneratorPlugin extends PluginAdapter { private String mapperPackage = "com.iqudoo.platform.application.database.mapper"; private String facadeViewRepositoryPackage = "com.iqudoo.platform.application.facade.repoview"; private String domainViewRepositoryPackage = "com.iqudoo.platform.application.domain.repoview"; + private String domainViewRepositoryType = "Repository"; private String targetProject = "src/main/java"; // 1.4.1版本专用格式化器 @@ -51,6 +52,7 @@ public class TapeRepoviewGeneratorPlugin extends PluginAdapter { slowQueryLoggerLevel = stringConfig("slowQueryLoggerLevel", slowQueryLoggerLevel); facadeViewRepositoryPackage = stringConfig("facadeViewRepositoryPackage", facadeViewRepositoryPackage); domainViewRepositoryPackage = stringConfig("domainViewRepositoryPackage", domainViewRepositoryPackage); + domainViewRepositoryType = stringConfig("domainViewRepositoryType", domainViewRepositoryType); mapperPackage = stringConfig("mapperPackage", mapperPackage); modelPackage = stringConfig("modelPackage", modelPackage); } @@ -108,8 +110,8 @@ public class TapeRepoviewGeneratorPlugin extends PluginAdapter { String domainObjectName = introspectedTable.getFullyQualifiedTable().getDomainObjectName(); String exampleClassName = domainObjectName + "Example"; String mapperClassName = domainObjectName + "Mapper"; - String repoInterfaceName = "I" + domainObjectName + "Repo"; - String repoImplName = domainObjectName + "RepoImpl"; + String repoInterfaceName = "I" + domainObjectName + domainViewRepositoryType; + String repoImplName = domainObjectName +domainViewRepositoryType+ "Impl"; boolean hasBLOBColumns = ElementTools.hasBLOBColumns(introspectedTable);