From 5576f9e59eb2192d919ad319ad878e90ca6b7a01 Mon Sep 17 00:00:00 2001 From: Yuee Shiness Date: Tue, 23 May 2023 15:46:50 +0400 Subject: [PATCH] Backend part is done. --- .gradle/7.3.3/checksums/checksums.lock | Bin 17 -> 17 bytes .gradle/7.3.3/checksums/md5-checksums.bin | Bin 0 -> 24197 bytes .gradle/7.3.3/checksums/sha1-checksums.bin | Bin 91013 -> 129347 bytes .../executionHistory/executionHistory.bin | Bin 360310 -> 652207 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/7.3.3/fileHashes/fileHashes.bin | Bin 20647 -> 25247 bytes .gradle/7.3.3/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../7.3.3/fileHashes/resourceHashesCache.bin | Bin 20333 -> 23563 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .gradle/buildOutputCleanup/outputFiles.bin | Bin 19055 -> 19703 bytes .gradle/file-system.probe | Bin 8 -> 8 bytes .gradle/workspace-id.txt | Bin 0 -> 28 bytes .gradle/workspace-id.txt.lock | Bin 0 -> 17 bytes .idea/compiler.xml | 2 +- .idea/encodings.xml | 6 + .idea/misc.xml | 2 +- build.gradle | 2 + data.mv.db | Bin 24576 -> 73728 bytes data.trace.db | 2412 +++++++++++++++++ .../Controller/CustomerController.java | 42 + .../Customer/Controller/CustomerDTO.java | 47 + .../Exception/CustomerNotFoundException.java | 7 + .../{Models => Customer/Model}/Customer.java | 21 +- .../Repository/CustomerRepository.java | 7 + .../Customer/Service/CustomerService.java | 98 + .../Genre/Controller/GenreContoller.java | 42 + .../is/sbapp/Genre/Controller/GenreDTO.java | 29 + .../Exception/GenreNotFoundException.java | 11 + .../sbapp/{Models => Genre/Model}/Genre.java | 8 +- .../Genre/Repository/GenreRepository.java | 16 + .../is/sbapp/Genre/Service/GenreService.java | 98 + .../Movie/Controller/MovieController.java | 49 + .../is/sbapp/Movie/Controller/MovieDTO.java | 38 + .../Exception/MovieNotFoundException.java | 7 + .../sbapp/{Models => Movie/Model}/Movie.java | 24 +- .../Movie/Repository/MovieRepository.java | 14 + .../is/sbapp/Movie/Service/MovieService.java | 136 + .../ru/ulstu/is/sbapp/SbappApplication.java | 2 + .../is/sbapp/Services/CustomerService.java | 75 - .../ulstu/is/sbapp/Services/GenreService.java | 73 - .../ulstu/is/sbapp/Services/MovieService.java | 89 - .../Utilities/error/AdviceController.java | 42 + .../validation/ValidationException.java | 9 + .../Utilities/validation/ValidatorUtil.java | 30 + .../ru/ulstu/is/sbapp/JpaCustomerTests.java | 19 +- .../java/ru/ulstu/is/sbapp/JpaGenreTests.java | 5 +- .../java/ru/ulstu/is/sbapp/JpaMovieTests.java | 46 +- src/test/resources/application.properties | 9 +- 48 files changed, 3222 insertions(+), 295 deletions(-) create mode 100644 .gradle/7.3.3/checksums/md5-checksums.bin create mode 100644 .gradle/workspace-id.txt create mode 100644 .gradle/workspace-id.txt.lock create mode 100644 .idea/encodings.xml create mode 100644 data.trace.db create mode 100644 src/main/java/ru/ulstu/is/sbapp/Customer/Controller/CustomerController.java create mode 100644 src/main/java/ru/ulstu/is/sbapp/Customer/Controller/CustomerDTO.java create mode 100644 src/main/java/ru/ulstu/is/sbapp/Customer/Exception/CustomerNotFoundException.java rename src/main/java/ru/ulstu/is/sbapp/{Models => Customer/Model}/Customer.java (79%) create mode 100644 src/main/java/ru/ulstu/is/sbapp/Customer/Repository/CustomerRepository.java create mode 100644 src/main/java/ru/ulstu/is/sbapp/Customer/Service/CustomerService.java create mode 100644 src/main/java/ru/ulstu/is/sbapp/Genre/Controller/GenreContoller.java create mode 100644 src/main/java/ru/ulstu/is/sbapp/Genre/Controller/GenreDTO.java create mode 100644 src/main/java/ru/ulstu/is/sbapp/Genre/Exception/GenreNotFoundException.java rename src/main/java/ru/ulstu/is/sbapp/{Models => Genre/Model}/Genre.java (84%) create mode 100644 src/main/java/ru/ulstu/is/sbapp/Genre/Repository/GenreRepository.java create mode 100644 src/main/java/ru/ulstu/is/sbapp/Genre/Service/GenreService.java create mode 100644 src/main/java/ru/ulstu/is/sbapp/Movie/Controller/MovieController.java create mode 100644 src/main/java/ru/ulstu/is/sbapp/Movie/Controller/MovieDTO.java create mode 100644 src/main/java/ru/ulstu/is/sbapp/Movie/Exception/MovieNotFoundException.java rename src/main/java/ru/ulstu/is/sbapp/{Models => Movie/Model}/Movie.java (76%) create mode 100644 src/main/java/ru/ulstu/is/sbapp/Movie/Repository/MovieRepository.java create mode 100644 src/main/java/ru/ulstu/is/sbapp/Movie/Service/MovieService.java delete mode 100644 src/main/java/ru/ulstu/is/sbapp/Services/CustomerService.java delete mode 100644 src/main/java/ru/ulstu/is/sbapp/Services/GenreService.java delete mode 100644 src/main/java/ru/ulstu/is/sbapp/Services/MovieService.java create mode 100644 src/main/java/ru/ulstu/is/sbapp/Utilities/error/AdviceController.java create mode 100644 src/main/java/ru/ulstu/is/sbapp/Utilities/validation/ValidationException.java create mode 100644 src/main/java/ru/ulstu/is/sbapp/Utilities/validation/ValidatorUtil.java diff --git a/.gradle/7.3.3/checksums/checksums.lock b/.gradle/7.3.3/checksums/checksums.lock index 14f94cd4369727b1db7285f06736f481a53141f1..7be65616dda0b3e6eac0fbf4a9abce5c1f9ffc30 100644 GIT binary patch literal 17 VcmZQh-_d)-v{d&j0~oNC001-~1d;#% literal 17 VcmZQh-_d)-v{d&j0~oM;0{}Fh1rh)N diff --git a/.gradle/7.3.3/checksums/md5-checksums.bin b/.gradle/7.3.3/checksums/md5-checksums.bin new file mode 100644 index 0000000000000000000000000000000000000000..5a8b31d52045c9937ed3d84d73c8515ff8a7edd7 GIT binary patch literal 24197 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 Aa{vGU literal 0 HcmV?d00001 diff --git a/.gradle/7.3.3/checksums/sha1-checksums.bin b/.gradle/7.3.3/checksums/sha1-checksums.bin index 1daa0cc39e6c7b490e09b85184578fe51431f866..ffd511d3ce60f223a1db666783b3d41ceede0ce9 100644 GIT binary patch delta 19285 zcmd6O2{=_<+yB`lvwbp;aY)D5TDJMy=W9#cT6FGPg((D1VkC~55)GRVZ7oE#P-@${{$?kF|))kPmIjJ!YzxeH(%_1#D7Wmwfo1-M-fk zwG|<_cN|ld$W=UA;S-uA_~8l!^EIZ35{nj#2Ca-g4e|bLtVV*WaK5|WNAbpeh~*vs zC7UtG^Lo5_6ym#gU{aELXtR9u%g+y&LCg)oHb}}CA7jnQc2nbi3c+B_=?acnDTTcI zY;OVa@Stft&imDq%)w=Y5bqJfoF&~9k{Y%=?@6hKm^(Txdpz^;$%X#xyCL3Iij@H) z)Tu85-&qoF7@Wk0C8=oT#NEU5wh{i?(}@{MQ57x~D4lyF8w|NFywi1_cw)aw-RV^z z#D}!7XekORP|~0$7yk%iyGpQBDLs@n*slDXHx*(LB?T{}j1h8TLm0=MEyoif+PxQJ zlcu7{k!#*A4BZ8>;U;W@v>WQQS7~Ya+p7?BxsK&XQ&5Am?+eun>>=j%5i65UK}~E| z|NNx(iQq2BHp^6?>}Qlk_ed5(tWOgYq9l{g)b_@G98l1L;NUhagW`s++qSu@y#5x% zMinqNSt=@YDNNwVXLpE&FUK~>QWP?Kk|+(0st^m4pLWH$wuBT8fw{yO?VZ4!WvL2x z($A+~?-Yfyxwoce(^^&}uAA}b*16N~XGRiH*GnW76$6Kxq0!(J#+P~QWT zg{Pk8Lb-thSc?)BEwZTg>$i-7n0pwex+u>`tPX8iR!_{m@n1u?@ZiJc=&Sk$C>wfU zx^D_^KV93p_HjSN^Ifo-MS2QoLa3#{xrGqxa-Nngq7;Q^o^{+p)X|HvDeIvfkrjg# z6%!Eab1l$O28{|W^YCW5Q4hhq$C#mtCC_v%B$7BM=BOsGz|HTVARa^XPJrR`|3A_S zzi_vp*b$QVKElG)sA$%W{t#cSHxP5r!^+fh70XBC2X+SL6Eoarbh?5kf}&nVJO=xr z@UH#>FLhwj;*Y~|8D#{xXI(*n#%@;f>%^lJs!A3LMO{{6HCidC@3rgcUt;AT<{e(( ztPSWsW9%n#la(RpBVFL7a|A(cQ_^GJSoK0MI2G$&LPaApv4Q1#2p@UR!*rHX(C5ki z(fc;-gK{4Cu?FLfwgtEXwELArO^*e0vm2=Bw$PJ9bg!EESvyg5>WS1$#oD>Q&^x6@{ zo;CxnxkskbA?p2YT6-@y%eix=zReI1n!uv<_0XR97wz}02up+Hu$%f(s5b}O+rBgm z%7tyiR1NY_dU9{6*@y_ld{eL*155JI#GQ8w)L4@s7~WJMWr(n#&-`mXtus0X!2otl z$jA*n+m3$X{Xy8dhlT|h>7iHVR_8R_tRb{aVi`tM^g&1P$!pn1A-2yA>o%%D3sf$S z$Bt-1%#W=g$Cw2vFj{NuDaLw7b9|pbZS^Ox_-O$2Tt_xUU8aZ`U(IH1y2G8?7OBJ!`rGULDcAol3#PDv*En z7j8$=SLHG-hVnycSWY|DdO^hEqub4hFxSmKEz74o=Iin3Neh&1i~WUb#*aCOuxx_3 z(=w)Hy5?If`v+v38o!$h!QeO8WLG3vVkpz}M##Ac2>PGF0=g-vOhfsd#ZgxvmK%x1b-SU9 zH!KmMDmxK!>R5Mo1!}i*y;WE}(YGGMSWXWG4OF~))6v-j%Jp+%Wjz(BoMq#i*Y7nT z7H}Dh?u{~9@~5!ZYYAd9<;hN4PT5sF-^o$C4$8Kx{=)ri8#(7&-h=ozHf*xjozEoD zwD%zq?>Z@%eP14W+w4q9N$OrG=2MEX_2(&6IB%a^qE93y&5qMmD)bGWe{{}}$YH}0 zu$=x1zNIXz31Sb7Am0h|9H>Ocv|Ha>93UpwUJ9l1@f(=7p_SJlfV67O;fJ&}^!J>zA6*b>{^%^B> zeuJR1&a{<_1)OMWA2-@UJfI#^9igB(HfyAeWQYu??+vzkd#^R7Gn#@b@ml9TdQXh*@Eojcl!~rrVi6WeQiv|us(Q}27FDDKf_vkVHXtAcNBujqK2ad% z?2#0XM3Sv{8`o>M3Ly~mt-3jkfYtSLR@C01Wkif^JI-GguH~MA5OK#L33iBpkw?^l6XmaT*L-ZIJDSGn60V^qTU75#(JJiK;D&V?u59<5&8>u;2qWw zzOhsrV!aCNrnj&od8k>2u=IG8CzN!Rz*1MqkbPoUS_0mGSp`8qKY9iS-m~2!0ZR&r zH6_rLewPD@Le2Me$VR+#hmv~)=sKK;n}XTd$flI}dJqg1nYL;#Rr-^~suMC0_uYl5 zu9l(SYNQ3yLpHIlAB0Kp&| zx)cvE!^KCuq`<}if)Qf$Bpx6sc%H1ORz?gazq-OY9%Lti8LcH3UKd2(nPah;d^DFM z^KKqhv}|b@myM1HSxbp!vzi0;--kYIQiZ832{i__F4h7ceASc3{|Ksc&36iUnQ~^i zQTs68!t%8xe(OP!&R~rI0Z``P9%W+fy|b-VvAa_#RPy=?aa*-@Ym#r%)FDlci@_qf z;USobwyt{Ro6pwcf9UO2=5v#8JlpI2Ad_IhT#U3JY$nTC|8@Aw?o{0=>N@4Z z-@Y>&vee<~M$-67BGH(YmDmK+_6zr0h}^WNSI!UHEcM75L`J-2>TuwYwDHbnGO;)I zR^{!tEG1KXmS8*h{FGhm%4Pq|67rtOT6V?Enx1ulzu{#&&m4=G9kkagQ-=sz5D*82 z6Cc`4${um0?a+x)6{WA*@U`R+N4UzTS{;HF${>+AuV9*{0&<1siA~BoNTr41+A<|q zGnF3mgE+@%3LI%9{drjFH33>n{YbOOz6YgSo~*Pw?04!z<%&Cm99(8d?9DT+@TqQM zuhdQd;&rIi-0$_|H_a0|b_DAcv_jlzChPH~jmG=pY8o{1R5osQ(nx$|x#~QPpuy-$ z5_g+PTYf?!n)k!9@mRtorsr{_+r82sQoTEv3){$cV706lM218 zwy*fq0LC=K0dQd>aeN0XEYX}Scj86Jc--+8cQdwv3^H!$-fey{XGYCm!AqZ`Lr=C(Og3E)JvR)bl6I`z*k>5+|&b0P7EZQt+dZ!D--470W9=trveI`r&!-0QpxDL`5gSmhgPAd2?DO0MEYudkT&eFq`j)ij{+ityX-+hZVwm=mSb}FN5)n1MovXYxf1P)ZYfA5i$QLD{s|gn23-Ktr zqZ}eYGm?F|gy((Mod=(qzjWO*KkP^Xi#wxwVqml5`!%L^)YLd_^c0j?`l;iMX3xgp z2Zw`#w-T&Q*bGTL#b;v4SRIkwu2gJF{=RKfR#&bzi)+9eVrndgnFC3RV~ z);03&{A04TQ(c~0>MU{zWdl%|e(_9}#GkSni^?Xn{fbVoP8Ldj+z`Dg2eP!xAZt!K z_(@~3vF%SI)n{bA2i379(f5z1)tQ@Rf*6GRLkq+tyo3QqGPlfOekEVR!bWnl-(&W{ zg45R@JT3MkSlbySl8x9*7Oso-f2FME?eWnpB;?)$hxS`(nYRkQWtHHwgNC;ZPAY^0 z?>i=c{13FhU~xIGWYuQ5)$l4MUazU^YRo&q*LMkjT!#Mexd?U9t@RLIxsRiJDcL8U ziLS7hmwed~Xs>pVh^|^aP@MN9mbX=a#@*1VeLl#}ry*=OENnskI#sjhuv%@HuaM;N z%@9))az`HDaTDiuTfa1-_RQm;U_YllRs;)A5kOh$3_i19f$)Kk1nplm+$gzO7)7V* zfvGl&R?f6z_OATLtm=28pRoSFhd)M*6`&p2)p6aIe^JX?pF(l{&b*x^;~}t>Iv`Nv zg#*uwn4HsFd}a5_>WuCk--2pHKdj-YJTOUwF&$L~iNpnxIA+#+@f{5hJ60yf{b}Y` z-la5jNVrvsnEyH;dBckWzIkI(mdDTeMNh}1rT%ofcy-aDTC21xa|jcO!2G1v^jZER?R;wvX@9N0X!ww$*YMxN+ zbM@x}NYlL!Oaq1g6!tfLi; zUNV@z&kg-2!+}~J@f#v;7K71-JKyj;gU0q{HP(MffOf3p=R((O7YvhJWw3^AJ2vg& z0UJn$ToXf%#Q&S>MGnm$Imu<%m9v8^DxrK`?D&PkLy)zMm`MD%7AB(}i=?jI!!`eq z3`J<7+u_LF$6}k6=}U)rvkW=7h4JIETct zUvVbug47?HhVkj22VU7`@C^!uMn<(8L6*rw25ZkU4e*n>lYDyy3=JeQ68)21yKg^D zUi>NkB#5@SKh~^g(AYA5GyJNXm9L_XIhG?@rAD!px7jjx30x;wXBaF}Q3UwO)G#CE zS3xx4i;{ZV6_?6eEFF+Wx$;d3S{#qB8U;p*R=do78i_?T_$BuPr-Gr>Q zaO=z}1@aSSmP+t}lGBz=G?9I^%jTLNUc7^TcL`wOOXAu)3}tf<{borlUU0GK_(CxW zc~;5ZqA#oCdR}b?2_o)~^#Tl*fXkMd$`p!9`?5~es)q|JZT6Tuykil&jugRyTTeD& zVxNn-X7keG?d0v=G#eie*%mVTXyV!#tHMesZ6?FeA^qXPOdaHXcl$oOM*itMmUJyO z{=R;0<3nkJb%eoU@xsFllh0eyChxevI@hUX8KyT?r5G5Jp8V8=py2@m{8ig&ChhUv z2>wf}AGD2BB|o;StzWDDL7@Y(Hpt*45~UV*0ku4qk@Cfq1ac1 zToyxY?z7!kb+`acQrG50{?;k+1y7Oo^_|64zMY`&aJQPzVaTyY|0dBjYPeUkyIgg+ zJI!XaZfHecu&^6pBs#k?scZ@(Q9SpX)B8y3&8X<^pflh+u7p`ohnTVvOgS&O+z|Vpxo9#Y${oN zfqBN~OK;+xzWU$QM_C1RjYvrcx(ESqc!3vJEBZWRkUF^vFS%uUHA{fcsEWEf@h!6V z2GLzM_%r}#M4W2i%j7`?x?i-zGvStKS-$5h9@RbiaL^45f4t%Lc)%i&%nSYmUnbT7 zlA~3!-+O|4qT}bn>UZbEy62xDl-V}`aT19&`5^c*(M+a1?oJMm-x4t9FC8hII6G%# z1Bh?9vhCX#EK&%5g3ZKQ$iu(j;_1O{y!WGJgxB!zkng_%5&#D49c0bLGb84ZoNytJ zBR^RCgVvDd>0EQ8ui2iPh^1_YD}%<8PoJqQGr8Pg^#xx}v-fNv8RI?2*B@KF1S)d? zp$L?@3Ar;_U$|oiW%%Z$Pblr6+?bTwE&iKhLRl z>y+q%n0Gatte#4Tj}n4;3_&)tO_*bV0PTX*_Yo6p=<-81rMQ=KsuzWkC!yRfc;hdo z>p#*?{9__KB2i^$6Sumb_sOZl zoi9B$NUChBA$rqk0mCTLGY~MC`z5*|@WN2FRT*u=W5G7cB8mCpN`#3{e?r!sgqf_6 zsL1D7+9PwL^1`+t=`&v>cU6NG5;xHq-wuOidHFo>W$sN&^G}cB`wYrnO0gzn=Pmd7 zUUM{spf%tu5{dDafNAIye$IKjD%MTmSbeZY_>PSme{iqmgDe-k7fB@UJ=WmM#2UJM zUz1k6x48Yi$kDpdN8!2g@z>`=nyVIrhVaGBq^(hoQRA?jtpCVg_(i>jqE{gv3t|@D zGFRBOB=_Ge%ij&;Cl0FIJ9mZOo#Y>&M2j7?y$4t;0d02+Lm6oR>^7Kfq)BvV$e!j& zIUnF)AX-rFm2Pp$o1yGdEm#EcqV)|PUd%6ZPt~Wr-Z`2`eUUh_tZ6$(5EQI~Ba_4q z(rf1G`)LwS{pJph-94^fwqfNMUAIjL7z5gJsm_v7J2DU7>N7d6StLC%xo@>|&=_yA z+492@w%cs(!Bz579lkn(vgj80Fwu%yOhxWlHdcHqHLriOe$nUtCDC69WoH>Al3X)J zp$o`4l;6tA^!;I0^J<^aA+f$5zxVcp+;b>Lxyz8VqF(Q>I%4$p_p z?&W>kYXSZPK>p5H*>?*1 znTzL;HtPIzacOBoD*W5aoF&8D!PqoAiCA*C&XOuVulkkyfTU#qk2*TZL^<3$-M8=nyh|v z0j$V;0sKq&gEviCstJ$Xz=WG<^?zx$nA*9D|$m>z(G z|Irn@9(q{%<4x7Keo#@fGQFDvkseV9Oe$p+CfH8G_VV z2+lOsDLp*qj91l!7>Qk8UZzrJUo9`p^e;8|VZ2V_l7A_HS=OKX{*YDI0p+Xvc5fZ~ zrbiNLgn@6d9WLUMe<>iaUB`Dxj~{pU-1&hIwy%#Jut*oT=FjkvgS`Y zsBdXLG9`NV-7{TX%i@7;AhTuEP)tuCN+{>3%b6vEJ(Dz$!_L1( z0j&7SilMv3HLJcn5w>JEUgQ!cqAGd7m)<9c`4R$~VNXb>;|`wAdSnVRR452~U_4&o zb19K21iNB)RVfNjGtb_T_z3rih)c+HyeqA`SS)hf?y#5qnh`B_Usz-Qg=fg z+wY4h*zJG@e5=D=0IV%%*K^LI+YsyN##A*djVqoV*pA-&2zQ=HkLh#^Dw&>b|H5^G zTwC4O5^2cj6nM@JUW{2RD*VLX2Txg$f!hVcn(c@J^BeE!D&7bUExS@%l?d%<$KGn` zDZX)2A4(Ki@CIVt_0zI%*V(&8rYOT*5c16rW7Bq1V0tG$En5?Ad_R1J5wQYx2w=|I zGR8F@Ui#+8buEV#_m=$<{wU5D)#^?pr@c16@Q!P3I__z)P`*tX3)iNiLr$MqOU8*h zy40~U?cL-L!;WFTY{VlSq^A&**8y*({`s*w=A{#f)_xXrb7E_nBAQmvti%7i2kd(2 z>X4`7->SbtxiJq+3Or!{|NK!qmZ7JI>IjH@%2Vxwb`OXY)aWT9|A-@J-fFt0F`{noGuD*L8CE!#iywLAsY;e9f+ z%!cU9)^KdKfed+|?Z%o-)P=gRf)+i@-XLmL&+0KLLp}6X;nw)m>G&Z6h$5}uunmS3 z^x@5V-NlFgfLJs5%@)H*^2n%~b6SBsJk&tCsf31cC#-(`_7owYOtuDVfNN`Wvwq%c%d4-}y(O7|Ya~ zt6|5X?ruZO*_g`w_8-eJmLdO~%<~!RE_Z~2g9%ufaU_}4;drw$P@LE|^vYp|%lEKI z%sWpJTJ+Bu!(Rn%$&BPk=@G=WIz~zP@x@y89z;BsIM?`^i{Z-W5%S)X04)z$=noP)99EPRXz=fsh62m1VW!yDPtglCe5Bsb*ouKAg zX4Y5B^I~2~q&p4LnqhKGlEsfOWTLpg&jS_C z-?AIlCw!K12R{orAkWk#4x&z(o7)d^BR!7Prk2Tpy1T}qMD6g5 zThVZb_BFU9}J*`W5E%KLrX zfvFgw%paO4g{K5e{`h+=j}V=eG_OO;w`m`e>$}5$;jzFjV@*OCT--@wcoM^;45$73 ztgTJr#fd&9?BCNTt6p_ARd$|Pl?il#>)lIjC~TPseq6$&?0=yB1#8jgg`1a`)JAsX zzt88ziga@M6+sq+kG?iLs7s0hb!q(LPHHwZ`n+x6ZY98{>w5B|fXqA1&v~l$xE5EH z?j!0ig7r%m(a%fbS7j#ewBqItS32!^;A!=BSAt02V?q#YZ}6hp2|i4X4n941UWyvK zyjd-FqtbuBfWP$QQpjotJ3G9HH-gVBSY&1z!z#I1SjA{3Z5HjEX$TwVY8#6)_s&Oe z3R+_rdaY4P_MQx32Yx36il__tFq!{5*0lM*Xmsi(;Qa-~4?dn=k~`rYtD(7{`ucm9 zJquBPAESDbY#&3AHVeU-hCI{?Q%ev!Cc*d2J#@6y>Eq_E?Q3B5-N9wl|P?_kQnaXC#Vh%27+m$D&@%qmE8ec1U z`rGAg6xF~ki=nImDwAuQsqF8u0#1Ciraf5N$DQv;m1$GDon@-Tei$n206_*XVyD4} zX%wU`B5$q}y3tn}SsC3M*P@#1f0=N82RwWtiQyU8>{xhk`ByaD#(&?$E7nDFO}#c9 z{I4HGh+MdtSdT0M2{G=)ju&{dNTelrx&=%G{r}&`H1|T*a31sskSx3?dp7#M`cJL= zKZxZ*4E`H!STIL&+P0*}Yu%%q}1lRHgaJw0)3$Q3Bi z4Ng|@vfvi@Fj@11g&sV-&ivK(ty*JuZ$>Qn{7IK!^$;u-^O>v;fju0Ql9=!gHkEn8 z`uobJde6=yF7|rhX()+3i*biflepjMIFQqmo4EDC=d|q$rHt4vK&yHUaGStyFW@&k zOjfbm{cOsdvbulkl#--~;zI4Wyvo3nxQ}{IF-RmIJV%@b%jB$=~U*bjvIgZDhWP{8TucBXzt_jZ1Y&S=?NTkOmc~o9?IOEOd-Bdj__=%7RgO>Av z_A|G4HY|FzG9qBJ=Hn~F{S)!3apE6&+y~gtXVgy-)qjB1^Zq85uPX5r3cf6Qc$0?G zaz~5jt_5me6Ci7dNH3T5Vaq)PXU3Qd`vR-@Q}gb8on@Cc)JL6SY@ zmn1;byD1fgzQ3iRd|$pX-&ic*^NTDfH$tqH$1GGb7YTPw>)hynTo9w(9v%x1E#bJTOaQ~f$r9up9HdSm6HV`>+UK@)#~Gfq%A zPUEQ<^MmDk?y;5I?zekY??jH0s+&jlkcB}8jr(mGz*!;ul+);RYzhLCZ~Octe;?4kC)19@L@8l{Gduqh%M`zOZ#;t9zxz5$VxlvH#kZ$y#!d5+EnolXXKIMb~d6(P0 zF4TB7D%GyUL1Hax-Q-me4l_0DyyCTXG; zkG8WNbNHz8&W!Cgh{$+_yzo$lUlk8vKH2hTzK>5vH!VP=eGvz<4LuhC%j>x%H;#Q6}*U@!hbi7w*2)`;rU18%kIz1 z<$3A5^73{sa7=+$kA^VB*q`AY!ems0#ez*n#s$qW;qC`2h8r?c6N~>KSa1p>iuj=i z6RUT{X`24S*VV!6=jpf{jSh9cR<8+Hfn0JZLm3iQFq3v@SUA7jTVkQzs^IZE5vy+} zyS<-;%I2{`)@pJ1YZog-zj&W$zOQz0{epn4w%-r2$F&lIAQ0i@QVIAlStS;GSiM$d z&(pKJjHMENJkmY?cnP)yxCi*RF-V;K&u6ki6%LdOz7$E6*%zhxen3CIrbo6Dj^JGW z&kP!=0wfR2%KFkaXt_JpO1nz5nDJDdi>MK`$^^;|uXT9E0a?iFzs*|8)UswXZ_~;_03%wO7E7D@a*4@UnY?^GDhW4@qq7NhS1#ch5UX(X#UshL> zH5vz&e3mnfA--7HgDAOc8x2a?M#qaJduX>8w+Erf0t`0G*c_cdOyf!JIrpCL|IUBU z_kGtNR$jcR`|+qmKf@!r5tc$QS?-`@Q4xIkHqJIkh&RaiyHD{22^$VPD31G8DL62R+s9iz5 zBZP!Qg|#(?Y^#LLRu%oPDVXQS?O#oKXd&(5HOy669n^m&bJBvMyN5~Zs&F7ioIgf~TF z+U)B_(h5i4FBhIEk}-HJpy`hrNOQb#f$-~_iYR25R6j$q2+q(Q(RYoR*=rOMJ=ZCw zc~9OWbewWy=u}AfZjuD=TQT9CBfp5xkz4D3dydfEp(5KM!{k%Y@5{jFe^Ta*h_5QC zMRXa+B1Q~cUo=oaM2%z?i$>n7uj0PGD(;r3q9bCpiubJ5{1&ff;6{u(g?*TdlP~eF z4b(7KZ{pAIP2?7vCZ6E`+DocP?BzzfeSD7tm$`1>GVc}kb6rOr*9GhN z_*@+W_OHpTd6d&1*ojtx;Z*P4pLR9f^ZCq+RXX%yUAV-nbJDhDo|Ko(!*V4qEf{DD zvkOvPJ?aZG>LU38e+OmR?`+lu>|6M}wiXXWZNz<*`2q)H5 zq}D>{ePG7mgAf|mE$Cin3D?>F4Yq$HgT%uS`W^*v@6i}W{~AZIm_heu29C!ZzQ-B3 zw*1=Q)^Wn!Cu2xHwV?2H8o&H4L-%YL6VEul+Y(M}%ZP4IW1ysBwWLTVZ=K8D+K4ag zUX5Da|HVgq^D%9R?=G;4xt&QDVR_F+Shg=CEZb~^)9~RZq-f#i?UekDzAY0M%Na);q*u~y+fkD zhKar!PVcVK9us%yGjVHnTTQdu21>KPd}MJShofgdL+q`R_SMmQROXzVw5fXW*&k#| K|8Riv-Twd%@R`;C diff --git a/.gradle/7.3.3/executionHistory/executionHistory.bin b/.gradle/7.3.3/executionHistory/executionHistory.bin index 174669fe2012e8eb0c6c8a817fb2f572fae0ed1b..5f1a46a19662c9fe24315b75619306316565cca0 100644 GIT binary patch literal 652207 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≫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Á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

3LA1^ZnR?MTsVYnCXgXi%w0N^_S1oRn_Zf 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 diff --git a/.gradle/7.3.3/executionHistory/executionHistory.lock b/.gradle/7.3.3/executionHistory/executionHistory.lock index fe8c25a3afe8d51510e0897e3c735757df929f2f..ee5654bbac8400411d298b7ad0e78c91c8bde649 100644 GIT binary patch literal 17 UcmZSnykL4Z_nQaV3=nV-06uXAoB#j- literal 17 UcmZSnykL4Z_nQaV3=ohB06rN7L;wH) diff --git a/.gradle/7.3.3/fileHashes/fileHashes.bin b/.gradle/7.3.3/fileHashes/fileHashes.bin index d9a41c672cd0140e3df970c705f1b24e278cd7e5..b51bbc78b6b4e5045365d0d753aaa4925ed03835 100644 GIT binary patch literal 25247 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 diff --git a/.gradle/7.3.3/fileHashes/fileHashes.lock b/.gradle/7.3.3/fileHashes/fileHashes.lock index 1b81e78a64e51a6145a3011025b46c1e728f1e49..2e26e6ed5aa3d9a9428936ff5e52fcb6db8c2cd5 100644 GIT binary patch literal 17 VcmZQ(n3c-+KYYPb1~6b@001jY1F!%9 literal 17 VcmZQ(n3c-+KYYPb1~6dU1pq7n1ZMyM diff --git a/.gradle/7.3.3/fileHashes/resourceHashesCache.bin b/.gradle/7.3.3/fileHashes/resourceHashesCache.bin index 23606252613c2e1c6ab6b52c72d0dd86dc3d8e77..fea19e91c3b19ba66dbae69b8e91e56de75bec84 100644 GIT binary patch literal 23563 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 K*RA^^8Z~|d=s>Xm diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 1480fc9f5b0a0bc6bb9ce9eadc776d63ef7007c7..d6107e05a7726fc374428c7030d679b3a518ba4f 100644 GIT binary patch literal 17 VcmZP;DZBpqyJwOr0~jzK1OPO;1la%p literal 17 UcmZP;DZBpqyJwOr0|fj505tOj6951J diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin index 9327391114ef4bfd0de618a5dc9adba68282847c..05b9985b22affbb05447a482a422891e0da69a84 100644 GIT binary patch delta 908 zcmaDqh4K4L#tkMC_0CNnj-|O2KKjl81|ApxLqW%O>97aFXTl)jUimQb9=SM%yr+%_ zAmTpqF!4V7Bj!K$+;|8P_g039&n^?+bSnRjA5=UNCO-G7NV&hT(!JAAgF;~v3&L1M z&ab-t2P)1x*;PV8V3C+R!|55X-a!Q`C&vN>m#=uAF2s2v5GvR`xl|%RW6NoyImvl8 z><~e(r7&Z6h&5-}6kfE1h;rirIsTmqk_dfcomvO{GRnCQ(5G{D|RS-wU z9EiBr?a5E26daP)&eXY75cv&if+C%F*(6QXtIEp3K%zdMuGVao+?0^6#)En BmJR>_ delta 107 zcmex9lkxo&#tkMCg7Qrtj-|O2KKjl81|AnDUzJdp%quA|*;dkH@>U@I6o{8f8BBgF zB{A7lx?=KOX@kkCG7^(>fq1Ko!DLZciOH_A6DG6DNlZ?aQ(|KJxl!?l_(lT-(anw? GdQ1RH#3c~` diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe index f8eb43b9bf6c9993487007e847647988ba4a9f52..637bcfeee22c3f22a652d16a7f8d160da3e21819 100644 GIT binary patch literal 8 PcmZQzVC?Wn-O&XA2LA$i literal 8 PcmZQzU~FePn*0p_2E+oX diff --git a/.gradle/workspace-id.txt b/.gradle/workspace-id.txt new file mode 100644 index 0000000000000000000000000000000000000000..fc29238861d696d50e40c1f36f4300f11e114dd9 GIT binary patch literal 28 jcmZROGEYiP%qlC&&M!(WEKAEM&Mqy^sVvLMFUkb~k>3jq literal 0 HcmV?d00001 diff --git a/.gradle/workspace-id.txt.lock b/.gradle/workspace-id.txt.lock new file mode 100644 index 0000000000000000000000000000000000000000..7769f4adbe7e6bb15e69ae12d253b6b111321a83 GIT binary patch literal 17 UcmZS1JdlyNzV_=I1_)pT06ZfF1ONa4 literal 0 HcmV?d00001 diff --git a/.idea/compiler.xml b/.idea/compiler.xml index fb7f4a8..b589d56 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..81c5e7e --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index cbfe0de..49504ef 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/build.gradle b/build.gradle index 8447969..f65093d 100644 --- a/build.gradle +++ b/build.gradle @@ -17,6 +17,8 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'com.h2database:h2:2.1.214' implementation 'junit:junit:4.13.2' + implementation 'org.springdoc:springdoc-openapi-ui:1.6.5' + implementation 'org.hibernate.validator:hibernate-validator' testImplementation 'org.springframework.boot:spring-boot-starter-test' } diff --git a/data.mv.db b/data.mv.db index d421cb15705658deb507b07142f121471fbe518b..0156420dd180dc59e29c18a4f07dc26bd2b8ebae 100644 GIT binary patch literal 73728 zcmeI5No?EL8OKT4PCQCHThbQoq2Oq;c}C-MC#CifS)y#(vYbk^oty-Uq%y&HtD|I+ zITh_3yQ1v`D5f2B0ovP~duV&;X^I|-VlM4{P_(CRKre04kMEHpMTwH_*hxJ3bfC7! z$HzZ6yzlq_-dik+`S#|H^F~qN>4)a6w>JKJv*3wdYLv$u;v-r4i)uICm7 zU6*yW-Bx8K-`UyQvb#{pU2pI9t(|Qs-r4lJ&g;0qN%1yBK002M$5 zPyti`6+i`00aO4LKm{JB0*l!Hf1L8;wow6802M$5Pyti`6+i`00aO4LKm|~NN1^~_ z{6gRX5c8X!Px`m)T>$x8_PwGEwt#K#UbiUackP?r?V_CD+u7+BWiSZvd`FYjeD~It zR}`I|13<`kcbuXuYTQx2z(l~_WPitGPBGJx=qYwbk){=$m)cTCm{tn5YV(>ft#@ou z5qWvqv)djoYVvePmNi~3=r8Z=-JE+}oZGs4ySuaJ&AIKl`kl?qb$j!USFyXcb${2( zC(3m1&8<^kgXfZhexVCh+kqPHUrZE+3L86bhE;{7Ca36eOqT9KO>^`2yIyH;&%Ph7 z#U<(_rD{9dH^TyAq5y2Pw$pAxd*JA-*t-|zH+R|%ujB1`+m3g^Z|`gSS!KoR+N3nJ z_CiKxr&xw%Ug9oYZyFX?ZWtxYXw9#gwF)N+G8~GZPrRF9pJ%4vOqmnOQX)&4EETd; z$x%`B4vxcvX}f-i$T5lH@y4B@Knm* zwKt35nRbyBgO;!JS$7pa_$b=C7yc^CBGmL{ zhI!>1aOAHt%-i$u9p1lw4c_7P?<#%AB`SalpaQ4>Du4>00;m8gfC`LMAld&8ZS+E9 zqt|7Zca@HMl)dS&t}NYtm;)dU^#27X=>N+>|6ip2f1ULI6;*eF{=d@h1pq`601#y% z+{%%>`&k6oN?W3T1_t3EakXnsb+DP z+q&wsRbF#7+jG5+bD3K#H5a+do+D|VA}hS7Lg>Kmv^7CJchfSUeG!(OW>n`-` z?-eDT&-T1DtruDX7;9Wr?9|Yb5lR#UywSvsY z+ya{GiK675P}{&U_!cq~{-t;f6;GWCuJNQJVz_@I122Z%e_3{)Wv8ItNp`H?;y?oI z$71pb3>?|dKl4|1>O6$WCMKs&ot}Osd*QECx#i%BWK$J9`C=l(Fw4B`1zl&;+97EF7lp@WVul?dur9 z77lid#in*5B7%$p9kUZ4i}yl+n?~Ti32LH=3axncq`b8 zwYvGmHDlms>nZ0?A#;(GTQG z@o#}mj@b@N@{1bSNRcct=hG{Kw!sPR?vp;<3ovkk4s9$eNb^V^OW^nopDl5T=WR>M5OIh5I)-8UcGGDPaN*nW)K-uJtJ3M&Njj2z}^C0F2DPq!9 z(=Vs$a%y7|681JeOuy7hqCFa_AAQ#Jiw8Zd|IPd@!*a|i-`6Yf^i3d4?*J}eQr;%Z zHd#7k>5`>KmYu)}JVPA2x3*pH-kc!yebf5B6^_a?Olze^UxAO?iKX}#HU32#V>Isf z9g7;V{{}my1>@$0%vGfR-JnxSY`$L5`|Mi}#@!?1?G3C)x~_feJ#9Yc&k}t@>$aE_ zN~P{=ViA{;e-65*!$3iNHFf-IVW1(tTFS8wauTSKJcv)wV;!D`<2M(!vhN&8**iG5 z{5VJ7IRf7BPDbD}f)MkFdu*F^Sl9Q8vp&gxaPGYcuvqjA3)HwEjx;X3JI1&Ww=M7w zV_PWt5vHVrAsTqHmv$0&Fm!$pv@Ypz32hZ=tviVCg|=x-^LnP3c=IGMSdciHq)UoS zKk}mOh95g}0S*hX-hW7q7XSJ_e80*}eAOaRl*zCBp1k7%6+i`00aO4LKm||%Q~(t~ z1x|nhl>bNkJ>>sV#Q$v-_<#FY`M(_Se>KkkCCdLH>`3{)9`JvOW&rq81n`i4@4C>n z@rMA=y{I!LQv-k?9bFCp@c(Qv`#lE1CW6ggaJ?4=PLH!jv=hPR0Q*L;38_Ibw*Z38 z(1WlK>@PnNVDn3loNFEhq5Lp~8ihBs&?S+6Upo|`OcJqCOgDm!Ljh8V#`@?Ra!u+_ zLasRsvOYepIr-wV|76)D*Q9t;q;GWmqB!MD&0-`36Uk-@?K(=b*-!eyDab-3D)s-J z1cA~>E=tE#I@tq0#o1#D3yibJkRirbd)i26Mi4WC#4wrS*$*>nWu!z^EONk zK*stTmh1lz%=1BjWTT*mpXm-m4+fd;Fcw)X)13}Rc$j2_Br2AA$?j2lLLA0=tZ;?~ zHN=hd$(Z3W{@>Q39<~zj zf7dy(0RSlf|1R=>Ol*#l>q1l`G5Z;R>=QZEhESoK>_~%(b-RBnCW!>PkjI~`T(9f zAHa_SgF+OQ={G3E?FlraT{ujxL|~!t!zM|qg50wzM2Qq}tAgfR6-fML(5gVEazm@a z@OT^kiVC0tr~oQ}3ZMe004jhApaQ7C<5Ga~|A@bb{9lRqzYFvKdD5}+e>LF$cAWof ziShrP1pg;#0Y3kSKB}Mp4<3bHw^gP5U(~fD=Kl|n|0DlL{!a$M4^YRr5%6(fbC@t7 z$W|Vw73TkA{(pSr^`YaMWB$KC1qbH;lNm^m|0gCAc_PO(2mb%}H2$wr{;!d&e&qir zi2p02`M-kvANfD4vl6SYy^+o{f|?ODnCakKGj@h~W<39=J^%%M0O$h~3g~OzE1Xcw zDu4>00;m8gfC``j9}@*A|Bv{4$p6(C|5sd?&8>5EBt3@Yvvm7f!2g{%|1VJf51lkR z{=b*t|8(NAwkH7W_xV3etr-mfpiu*WB+0R@J={k+0Km7=0DuMnGytFhzz5YWn1Z>5 zGn+r%Gn?Z805|}EHH#CQpCRj8K3(!WXi?$uQad8vv*gKt&?}8UfGcA)&~LUw!gp5|YH- zKm||%Q~(t~1yBK002M$5P=RAoAj#iD{;x&+-*a3+5RaAr>jD4w;{3mz;Qs>OZvYT^ z|0Tr?0HW^nI#_yO0Puu|qyEv_l>h$_`9Jc10ItXik5QFDbAJLC61fvmK#RNGPrW7yl7N7t2AFTV!$J8LyHix zX6_1w%)OsshG=fyTrlevSMQ&0p03~zA)PFcoxKbjc1CX)Cjh|we}DRM%>OqUW3S5e z8^qdjOD<_QsvAp|ZdR>DT9)HldGDICJd%IBmYPKKgj=`jNmfN)Ppmf40HDI{Ga*&bo2qB z4*-1t=mRM75H5qL*`xOX{4_8tL{Y@C11lUZw z$j|6jIAjPJS3?C*0aO4LKm||%Q~(t?K?+d*ALH+#0iX~W02I;D3buA+iS#iFpZ!1Q C9lL7) literal 24576 zcmeI4&2QVt6~IaPBZ{-$B%3aJE4a#s?XFhkkQ|cYDf*x-u4OqZ(RR{{!Oz5qExERw zjeF{$m-bK;J!}gUXt6-i9tyPAz4lNP+tZ@xseeTOhCU8C5=Bd~ys?YyW(AVDtYsLJv#`Mt~7u1Q-EEfDvE>7y(9r5nu!u0Y=~|3B*BuoU8$miu*y=K*a;+ z(D2~+(twbEu^YVXLxBI#c^VwUGJ&IBuWuj)mI#OlVJsEl_57-FHX=QbZ!(pcf$8 z;2gwzpM2gs47&D_(>(_0u%P8QF4}k8{h%b?Bw6~w!69@IioZ*)Pr81u*?U?-q%~ug zRAgi;dJyF`l8TDYgHwZ!!Qu;N-=JglKFJ26LiJ~J(LuTrS2hsjY)(4l2lYV@NiI6z zNvrf$iG@o5O|I;Fq}f4#lO;jPkTn!u;>*0s>%7ckUgJHE%T?xY=eTR!HDX^%Qj*F^ zs$4q&9hdg}`N)_6K$1vtf`8A)R%y60DYi=cdoN&Ey)?vPboPjtBazsuGO<<2OKg>r z*eWTuReEHqM6BvwY^soqiznTaV_4IqW2`&LMWs(WBoC|@7&owDl7fmo&pSDEy56ZF z%AY3!CQGIaB{7?m1$2mjDmA8f)R=liz%amKBA{D#wP{6^iHKO&(;{l0B_b+`Wycv2 z0o4#=vU-2qef6OQ}vD@Y%5+@Bsn3bx?=Hc8om5nu!u0Y-okU<4R}Z#04I{F|<)$HVpX zuIP)tA71K2n$F1=;`Y_S9)RdgTO#k&NQqyn;q7_U13+I0$!oQu2j%3gHSz!izB70M zRLKhOL+uby)61j&g*c3!~jJn zj#gI0p|imAJ?NS0yyaelD{x!nW}@5o3M!tPPwc`pu8yqJWW0+d2Y(zteO`XbymL_R zEPt-MGl7?e{=oI#b5DrcQ`&bGdnkbEq{IC#ygAe-n@1Dy*u0o!h^>h(-vxN zvtpaO)h(-87bK(!a`S?>|t7EnWYgK4%+JgDm>ewBj(5V!JPNiuJOJ&K|VYgA} zOM&Ejvc4oVDxHR~SNNN}h;iEfhnn%1G6H6(e0mk|H|b zAJN^g48A~3ToNkv4Xbrm5Ej3plGG}-hFKTvO0{VUg-2V}rd2DH3bn0{y}4nw3(E_U zc`I1;f>5>Atd>n=Zf!N2#rT_5tKG48Ta^v7Ak-R_cBN)R-?l65Csu21S;BZFTcTOH zV1W&*UT>POY-3^Np76n9Bfbqfoqpq&p7w#{9 z3c7%vOe6y^>q2d_)v?=^h)W9I;KQh$lrYPra=~iV&Bv+yqk=sE^_(OfIY&FY8=Kpf z*`Z3Jo#^aNR##kNT!w{}C1`p7)h(}?t+q+qo7~D&!(m}%8FXe&tuwfVMs$|QLYS_A z!usPC7H6AEThPMAw51fj56u2~&do%apAW5Rw$|)M0fvWduEEHQj6>>1>(n*@y-?qT zd(;Fu&6?G*07xdAZQ0GKZ$-jpcXgfK+zTrof=X7WSBaX@NzzrKlOpKk#dw{>*{0J8 zG;u+tsD+P&yNgEBi;nrpmf5PMty{yYn(bC(p6QohdhJTv7IrMVA)pdK_)$_kd$X>t zKWRPg$Suj1>s5rCogJ+rek`F?bC+b@l`}}_T{*Z}3#ofB(r-r~Hgx3&!0TW9cwpH| zCZn4yUqM)f5oE2kBD=Vpl49kIMVeg6u#;_b)oe##;n_8KZlv`OBNLu2we{IsfRkFZ zvpDsJxLV(?TaVVOI~J;n?W!q%qOK_$!=^@V`z(s(!NV%HdugPzw}I(@E`jMpAu~{^ za72`GTqjmE?Cn^vwBkbY454h_1GY~m4pkY6YJL4<8#i|3ZCl)_SL^mpWv5zCTFaVL zs=lFJ7@>IwXnr|?=6SdD>iR@sG7JZekK;G7l3|a=@{6AWqwqLx_B#toju*K3C=iFl zI6-kD#fcmz3W>m7AXZ26`{WpqW0*wm7Ne+BX|L-CFH1-nxl%{2^vjC##kIzt5J%l~* zSr0*!LA@lrltb_@=a4cC?B)>S13t_lF$(eWJ_O|ceCO9Q+&m5PDoJn`zcRS{hjRjx z>9}MZ+Bw3Xb`K01-?=ZrP2VSbNVao82iImxeF_R;_Uvs%k5{IU~v&nJ}*3+cJ zsah0HC4M+rFPGKiT!e6{lAI%?VH!^TH>m6($A9;S;2C+y&HU^$;vt#+#V-?22}>9O zMt~7u1Q-EEfDvE>7y(A$Y6)cH?==3O`aL}l`C=emY5YICN)((t#@Cv5QSk?}s@D$r zrz(h6|No7D#^v(do3`lxLb2KDBFNv)1^wJ#bARXOAdH^-2E>11ynT`TJa_T^2X5lQ zyez-uIWESx+<7Kv_8+*g|G=96&CGEB0Xnk};Z^$&ewR3ZP-a)uWam%3|3Cr9EZHk1 zC(HYjl~QD@lo)CXtcZ%XO3Bn8WuVkT|Dkhg_^YajETK{)E$#FP+5U(WwsW^|jNcy- zInLt!1|Hdm5T8qKv?t-rJ_Oi*0FE>6w?Bt>0Z9Lm>_@(SessionFactoryImpl.java:335) + at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:471) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1498) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:58) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:414) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:302) + at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:136) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124) + at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) + at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) + at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) + at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:248) + at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:138) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$8(ClassBasedTestDescriptor.java:363) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:368) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$9(ClassBasedTestDescriptor.java:363) + at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) + at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) + at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) + at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) + at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) + at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) + at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:362) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:283) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:282) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:272) + at java.base/java.util.Optional.orElseGet(Optional.java:364) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:271) + at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:102) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:101) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:66) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:96) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:75) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75) + at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) + at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) + at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) + at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source) + at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) + at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:133) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) +2023-05-23 15:43:20 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Constraint "FK9IRIVJCNCAUMV1TUDWT0TP500" already exists; SQL statement: +alter table customer_movies add constraint FK9irivjcncaumv1tudwt0tp500 foreign key (customer_id) references customer [90045-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:632) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:109) + at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:72) + at org.h2.command.ddl.AlterTable.update(AlterTable.java:46) + at org.h2.command.CommandContainer.update(CommandContainer.java:169) + at org.h2.command.Command.executeUpdate(Command.java:252) + at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:252) + at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223) + at com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:94) + at com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java) + at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigrator.java:581) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlStrings(AbstractSchemaMigrator.java:526) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applyForeignKeys(AbstractSchemaMigrator.java:452) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchemaMigrator.java:263) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:123) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:192) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:81) + at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:335) + at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:471) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1498) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:58) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:414) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:302) + at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:136) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124) + at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) + at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) + at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) + at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:248) + at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:138) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$8(ClassBasedTestDescriptor.java:363) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:368) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$9(ClassBasedTestDescriptor.java:363) + at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) + at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) + at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) + at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) + at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) + at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) + at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:362) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:283) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:282) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:272) + at java.base/java.util.Optional.orElseGet(Optional.java:364) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:271) + at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:102) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:101) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:66) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:96) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:75) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75) + at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) + at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) + at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) + at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source) + at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) + at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:133) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) +2023-05-23 15:43:20 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Constraint "FK3106DKJT5HW3VT0WDBDTWAWBD" already exists; SQL statement: +alter table movie add constraint FK3106dkjt5hw3vt0wdbdtwawbd foreign key (genre_fk) references genre [90045-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:632) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:109) + at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:72) + at org.h2.command.ddl.AlterTable.update(AlterTable.java:46) + at org.h2.command.CommandContainer.update(CommandContainer.java:169) + at org.h2.command.Command.executeUpdate(Command.java:252) + at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:252) + at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223) + at com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:94) + at com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java) + at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigrator.java:581) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlStrings(AbstractSchemaMigrator.java:526) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applyForeignKeys(AbstractSchemaMigrator.java:452) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchemaMigrator.java:263) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:123) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:192) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:81) + at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:335) + at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:471) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1498) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:58) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:414) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:302) + at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:136) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124) + at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) + at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) + at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) + at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:248) + at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:138) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$8(ClassBasedTestDescriptor.java:363) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:368) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$9(ClassBasedTestDescriptor.java:363) + at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) + at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) + at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) + at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) + at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) + at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) + at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:362) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:283) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:282) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:272) + at java.base/java.util.Optional.orElseGet(Optional.java:364) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:271) + at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:102) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:101) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:66) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:96) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:75) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75) + at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) + at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) + at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) + at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source) + at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) + at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:133) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) +2023-05-23 15:43:21 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Constraint "FKYNXS3N2T3DB15LSW7A0J21FE" already exists; SQL statement: +alter table customer_movies add constraint FKynxs3n2t3db15lsw7a0j21fe foreign key (movies_id) references movie [90045-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:632) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:109) + at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:72) + at org.h2.command.ddl.AlterTable.update(AlterTable.java:46) + at org.h2.command.CommandContainer.update(CommandContainer.java:169) + at org.h2.command.Command.executeUpdate(Command.java:252) + at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:252) + at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223) + at com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:94) + at com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java) + at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigrator.java:581) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlStrings(AbstractSchemaMigrator.java:526) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applyForeignKeys(AbstractSchemaMigrator.java:452) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchemaMigrator.java:263) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:123) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:192) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:81) + at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:335) + at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:471) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1498) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:58) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:414) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:302) + at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:136) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124) + at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) + at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) + at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) + at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:248) + at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:138) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$8(ClassBasedTestDescriptor.java:363) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:368) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$9(ClassBasedTestDescriptor.java:363) + at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) + at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) + at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) + at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) + at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) + at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) + at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:362) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:283) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:282) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:272) + at java.base/java.util.Optional.orElseGet(Optional.java:364) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:271) + at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:102) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:101) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:66) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:96) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:75) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75) + at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) + at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) + at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) + at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source) + at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) + at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:133) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) +2023-05-23 15:43:21 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Constraint "FK9IRIVJCNCAUMV1TUDWT0TP500" already exists; SQL statement: +alter table customer_movies add constraint FK9irivjcncaumv1tudwt0tp500 foreign key (customer_id) references customer [90045-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:632) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:109) + at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:72) + at org.h2.command.ddl.AlterTable.update(AlterTable.java:46) + at org.h2.command.CommandContainer.update(CommandContainer.java:169) + at org.h2.command.Command.executeUpdate(Command.java:252) + at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:252) + at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223) + at com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:94) + at com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java) + at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigrator.java:581) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlStrings(AbstractSchemaMigrator.java:526) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applyForeignKeys(AbstractSchemaMigrator.java:452) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchemaMigrator.java:263) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:123) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:192) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:81) + at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:335) + at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:471) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1498) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:58) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:414) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:302) + at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:136) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124) + at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) + at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) + at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) + at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:248) + at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:138) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$8(ClassBasedTestDescriptor.java:363) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:368) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$9(ClassBasedTestDescriptor.java:363) + at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) + at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) + at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) + at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) + at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) + at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) + at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:362) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:283) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:282) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:272) + at java.base/java.util.Optional.orElseGet(Optional.java:364) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:271) + at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:102) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:101) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:66) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:96) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:75) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75) + at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) + at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) + at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) + at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source) + at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) + at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:133) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) +2023-05-23 15:43:21 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Constraint "FK3106DKJT5HW3VT0WDBDTWAWBD" already exists; SQL statement: +alter table movie add constraint FK3106dkjt5hw3vt0wdbdtwawbd foreign key (genre_fk) references genre [90045-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:632) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:109) + at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:72) + at org.h2.command.ddl.AlterTable.update(AlterTable.java:46) + at org.h2.command.CommandContainer.update(CommandContainer.java:169) + at org.h2.command.Command.executeUpdate(Command.java:252) + at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:252) + at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223) + at com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:94) + at com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java) + at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigrator.java:581) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlStrings(AbstractSchemaMigrator.java:526) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applyForeignKeys(AbstractSchemaMigrator.java:452) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchemaMigrator.java:263) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:123) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:192) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:81) + at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:335) + at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:471) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1498) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:58) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:414) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:302) + at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:136) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124) + at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) + at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) + at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) + at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:248) + at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:138) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$8(ClassBasedTestDescriptor.java:363) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:368) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$9(ClassBasedTestDescriptor.java:363) + at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) + at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) + at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) + at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) + at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) + at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) + at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:362) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:283) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:282) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:272) + at java.base/java.util.Optional.orElseGet(Optional.java:364) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:271) + at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:102) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:101) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:66) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:96) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:75) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75) + at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) + at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) + at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) + at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source) + at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) + at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:133) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) +2023-05-23 15:43:22 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Constraint "FKYNXS3N2T3DB15LSW7A0J21FE" already exists; SQL statement: +alter table customer_movies add constraint FKynxs3n2t3db15lsw7a0j21fe foreign key (movies_id) references movie [90045-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:632) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:109) + at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:72) + at org.h2.command.ddl.AlterTable.update(AlterTable.java:46) + at org.h2.command.CommandContainer.update(CommandContainer.java:169) + at org.h2.command.Command.executeUpdate(Command.java:252) + at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:252) + at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223) + at com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:94) + at com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java) + at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigrator.java:581) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlStrings(AbstractSchemaMigrator.java:526) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applyForeignKeys(AbstractSchemaMigrator.java:452) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchemaMigrator.java:263) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:123) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:192) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:81) + at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:335) + at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:471) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1498) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:58) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:414) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:302) + at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:136) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124) + at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) + at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) + at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) + at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:248) + at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:138) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$8(ClassBasedTestDescriptor.java:363) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:368) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$9(ClassBasedTestDescriptor.java:363) + at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) + at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) + at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) + at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) + at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) + at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) + at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:362) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:283) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:282) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:272) + at java.base/java.util.Optional.orElseGet(Optional.java:364) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:271) + at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:102) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:101) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:66) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:96) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:75) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75) + at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) + at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) + at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) + at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source) + at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) + at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:133) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) +2023-05-23 15:43:22 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Constraint "FK9IRIVJCNCAUMV1TUDWT0TP500" already exists; SQL statement: +alter table customer_movies add constraint FK9irivjcncaumv1tudwt0tp500 foreign key (customer_id) references customer [90045-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:632) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:109) + at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:72) + at org.h2.command.ddl.AlterTable.update(AlterTable.java:46) + at org.h2.command.CommandContainer.update(CommandContainer.java:169) + at org.h2.command.Command.executeUpdate(Command.java:252) + at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:252) + at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223) + at com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:94) + at com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java) + at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigrator.java:581) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlStrings(AbstractSchemaMigrator.java:526) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applyForeignKeys(AbstractSchemaMigrator.java:452) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchemaMigrator.java:263) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:123) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:192) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:81) + at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:335) + at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:471) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1498) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:58) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:414) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:302) + at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:136) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124) + at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) + at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) + at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) + at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:248) + at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:138) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$8(ClassBasedTestDescriptor.java:363) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:368) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$9(ClassBasedTestDescriptor.java:363) + at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) + at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) + at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) + at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) + at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) + at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) + at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:362) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:283) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:282) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:272) + at java.base/java.util.Optional.orElseGet(Optional.java:364) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:271) + at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:102) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:101) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:66) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:96) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:75) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75) + at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) + at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) + at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) + at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source) + at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) + at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:133) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) +2023-05-23 15:43:22 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Constraint "FK3106DKJT5HW3VT0WDBDTWAWBD" already exists; SQL statement: +alter table movie add constraint FK3106dkjt5hw3vt0wdbdtwawbd foreign key (genre_fk) references genre [90045-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:632) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:109) + at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:72) + at org.h2.command.ddl.AlterTable.update(AlterTable.java:46) + at org.h2.command.CommandContainer.update(CommandContainer.java:169) + at org.h2.command.Command.executeUpdate(Command.java:252) + at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:252) + at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223) + at com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:94) + at com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java) + at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigrator.java:581) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlStrings(AbstractSchemaMigrator.java:526) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applyForeignKeys(AbstractSchemaMigrator.java:452) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchemaMigrator.java:263) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:123) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:192) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:81) + at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:335) + at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:471) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1498) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:58) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:414) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:302) + at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:136) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124) + at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) + at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) + at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) + at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:248) + at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:138) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$8(ClassBasedTestDescriptor.java:363) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:368) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$9(ClassBasedTestDescriptor.java:363) + at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) + at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) + at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) + at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) + at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) + at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) + at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:362) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:283) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:282) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:272) + at java.base/java.util.Optional.orElseGet(Optional.java:364) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:271) + at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:102) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:101) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:66) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:96) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:75) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75) + at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) + at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) + at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) + at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source) + at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) + at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:133) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) +2023-05-23 15:43:22 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Constraint "FKYNXS3N2T3DB15LSW7A0J21FE" already exists; SQL statement: +alter table customer_movies add constraint FKynxs3n2t3db15lsw7a0j21fe foreign key (movies_id) references movie [90045-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:632) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:109) + at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:72) + at org.h2.command.ddl.AlterTable.update(AlterTable.java:46) + at org.h2.command.CommandContainer.update(CommandContainer.java:169) + at org.h2.command.Command.executeUpdate(Command.java:252) + at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:252) + at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223) + at com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:94) + at com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java) + at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigrator.java:581) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlStrings(AbstractSchemaMigrator.java:526) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applyForeignKeys(AbstractSchemaMigrator.java:452) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchemaMigrator.java:263) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:123) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:192) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:81) + at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:335) + at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:471) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1498) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:58) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:414) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:302) + at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:136) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124) + at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) + at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) + at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) + at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:248) + at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:138) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$8(ClassBasedTestDescriptor.java:363) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:368) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$9(ClassBasedTestDescriptor.java:363) + at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) + at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) + at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) + at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) + at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) + at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) + at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:362) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:283) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:282) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:272) + at java.base/java.util.Optional.orElseGet(Optional.java:364) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:271) + at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:102) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:101) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:66) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:96) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:75) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75) + at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) + at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) + at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) + at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source) + at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) + at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:133) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) +2023-05-23 15:43:22 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Constraint "FK9IRIVJCNCAUMV1TUDWT0TP500" already exists; SQL statement: +alter table customer_movies add constraint FK9irivjcncaumv1tudwt0tp500 foreign key (customer_id) references customer [90045-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:632) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:109) + at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:72) + at org.h2.command.ddl.AlterTable.update(AlterTable.java:46) + at org.h2.command.CommandContainer.update(CommandContainer.java:169) + at org.h2.command.Command.executeUpdate(Command.java:252) + at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:252) + at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223) + at com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:94) + at com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java) + at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigrator.java:581) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlStrings(AbstractSchemaMigrator.java:526) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applyForeignKeys(AbstractSchemaMigrator.java:452) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchemaMigrator.java:263) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:123) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:192) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:81) + at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:335) + at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:471) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1498) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:58) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:414) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:302) + at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:136) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124) + at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) + at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) + at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) + at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:248) + at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:138) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$8(ClassBasedTestDescriptor.java:363) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:368) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$9(ClassBasedTestDescriptor.java:363) + at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) + at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) + at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) + at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) + at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) + at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) + at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:362) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:283) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:282) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:272) + at java.base/java.util.Optional.orElseGet(Optional.java:364) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:271) + at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:102) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:101) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:66) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:96) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:75) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75) + at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) + at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) + at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) + at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source) + at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) + at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:133) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) +2023-05-23 15:43:22 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Constraint "FK3106DKJT5HW3VT0WDBDTWAWBD" already exists; SQL statement: +alter table movie add constraint FK3106dkjt5hw3vt0wdbdtwawbd foreign key (genre_fk) references genre [90045-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:632) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:109) + at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:72) + at org.h2.command.ddl.AlterTable.update(AlterTable.java:46) + at org.h2.command.CommandContainer.update(CommandContainer.java:169) + at org.h2.command.Command.executeUpdate(Command.java:252) + at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:252) + at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223) + at com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:94) + at com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java) + at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigrator.java:581) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlStrings(AbstractSchemaMigrator.java:526) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applyForeignKeys(AbstractSchemaMigrator.java:452) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchemaMigrator.java:263) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:123) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:192) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:81) + at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:335) + at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:471) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1498) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:58) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:414) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:302) + at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:136) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124) + at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) + at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) + at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) + at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:248) + at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:138) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$8(ClassBasedTestDescriptor.java:363) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:368) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$9(ClassBasedTestDescriptor.java:363) + at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) + at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) + at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) + at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) + at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) + at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) + at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:362) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:283) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:282) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:272) + at java.base/java.util.Optional.orElseGet(Optional.java:364) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:271) + at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:102) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:101) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:66) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:96) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:75) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75) + at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) + at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) + at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) + at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source) + at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) + at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:133) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) +2023-05-23 15:43:23 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Constraint "FKYNXS3N2T3DB15LSW7A0J21FE" already exists; SQL statement: +alter table customer_movies add constraint FKynxs3n2t3db15lsw7a0j21fe foreign key (movies_id) references movie [90045-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:632) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:109) + at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:72) + at org.h2.command.ddl.AlterTable.update(AlterTable.java:46) + at org.h2.command.CommandContainer.update(CommandContainer.java:169) + at org.h2.command.Command.executeUpdate(Command.java:252) + at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:252) + at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223) + at com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:94) + at com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java) + at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigrator.java:581) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlStrings(AbstractSchemaMigrator.java:526) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applyForeignKeys(AbstractSchemaMigrator.java:452) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchemaMigrator.java:263) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:123) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:192) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:81) + at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:335) + at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:471) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1498) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:58) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:414) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:302) + at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:136) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124) + at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) + at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) + at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) + at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:248) + at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:138) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$8(ClassBasedTestDescriptor.java:363) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:368) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$9(ClassBasedTestDescriptor.java:363) + at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) + at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) + at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) + at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) + at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) + at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) + at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:362) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:283) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:282) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:272) + at java.base/java.util.Optional.orElseGet(Optional.java:364) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:271) + at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:102) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:101) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:66) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:96) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:75) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75) + at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) + at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) + at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) + at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source) + at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) + at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:133) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) +2023-05-23 15:43:23 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Constraint "FK9IRIVJCNCAUMV1TUDWT0TP500" already exists; SQL statement: +alter table customer_movies add constraint FK9irivjcncaumv1tudwt0tp500 foreign key (customer_id) references customer [90045-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:632) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:109) + at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:72) + at org.h2.command.ddl.AlterTable.update(AlterTable.java:46) + at org.h2.command.CommandContainer.update(CommandContainer.java:169) + at org.h2.command.Command.executeUpdate(Command.java:252) + at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:252) + at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223) + at com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:94) + at com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java) + at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigrator.java:581) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlStrings(AbstractSchemaMigrator.java:526) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applyForeignKeys(AbstractSchemaMigrator.java:452) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchemaMigrator.java:263) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:123) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:192) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:81) + at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:335) + at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:471) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1498) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:58) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:414) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:302) + at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:136) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124) + at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) + at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) + at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) + at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:248) + at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:138) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$8(ClassBasedTestDescriptor.java:363) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:368) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$9(ClassBasedTestDescriptor.java:363) + at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) + at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) + at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) + at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) + at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) + at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) + at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:362) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:283) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:282) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:272) + at java.base/java.util.Optional.orElseGet(Optional.java:364) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:271) + at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:102) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:101) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:66) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:96) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:75) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75) + at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) + at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) + at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) + at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source) + at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) + at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:133) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) +2023-05-23 15:43:23 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Constraint "FK3106DKJT5HW3VT0WDBDTWAWBD" already exists; SQL statement: +alter table movie add constraint FK3106dkjt5hw3vt0wdbdtwawbd foreign key (genre_fk) references genre [90045-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:632) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:109) + at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:72) + at org.h2.command.ddl.AlterTable.update(AlterTable.java:46) + at org.h2.command.CommandContainer.update(CommandContainer.java:169) + at org.h2.command.Command.executeUpdate(Command.java:252) + at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:252) + at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223) + at com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:94) + at com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java) + at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigrator.java:581) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlStrings(AbstractSchemaMigrator.java:526) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applyForeignKeys(AbstractSchemaMigrator.java:452) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchemaMigrator.java:263) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:123) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:192) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:81) + at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:335) + at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:471) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1498) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:58) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:414) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:302) + at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:136) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124) + at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) + at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) + at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) + at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:248) + at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:138) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$8(ClassBasedTestDescriptor.java:363) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:368) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$9(ClassBasedTestDescriptor.java:363) + at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) + at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) + at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) + at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) + at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) + at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) + at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:362) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:283) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:282) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:272) + at java.base/java.util.Optional.orElseGet(Optional.java:364) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:271) + at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:102) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:101) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:66) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:96) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:75) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75) + at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) + at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) + at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) + at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source) + at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) + at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:133) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) +2023-05-23 15:43:23 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Constraint "FKYNXS3N2T3DB15LSW7A0J21FE" already exists; SQL statement: +alter table customer_movies add constraint FKynxs3n2t3db15lsw7a0j21fe foreign key (movies_id) references movie [90045-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:632) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:109) + at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:72) + at org.h2.command.ddl.AlterTable.update(AlterTable.java:46) + at org.h2.command.CommandContainer.update(CommandContainer.java:169) + at org.h2.command.Command.executeUpdate(Command.java:252) + at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:252) + at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223) + at com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:94) + at com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java) + at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigrator.java:581) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlStrings(AbstractSchemaMigrator.java:526) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applyForeignKeys(AbstractSchemaMigrator.java:452) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchemaMigrator.java:263) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:123) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:192) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:81) + at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:335) + at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:471) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1498) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:58) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:414) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:302) + at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:136) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124) + at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) + at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) + at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) + at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:248) + at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:138) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$8(ClassBasedTestDescriptor.java:363) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:368) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$9(ClassBasedTestDescriptor.java:363) + at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) + at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) + at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) + at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) + at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) + at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) + at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:362) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:283) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:282) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:272) + at java.base/java.util.Optional.orElseGet(Optional.java:364) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:271) + at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:102) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:101) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:66) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:96) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:75) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75) + at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) + at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) + at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) + at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source) + at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) + at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:133) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) +2023-05-23 15:43:23 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Constraint "FK9IRIVJCNCAUMV1TUDWT0TP500" already exists; SQL statement: +alter table customer_movies add constraint FK9irivjcncaumv1tudwt0tp500 foreign key (customer_id) references customer [90045-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:632) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:109) + at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:72) + at org.h2.command.ddl.AlterTable.update(AlterTable.java:46) + at org.h2.command.CommandContainer.update(CommandContainer.java:169) + at org.h2.command.Command.executeUpdate(Command.java:252) + at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:252) + at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223) + at com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:94) + at com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java) + at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigrator.java:581) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlStrings(AbstractSchemaMigrator.java:526) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applyForeignKeys(AbstractSchemaMigrator.java:452) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchemaMigrator.java:263) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:123) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:192) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:81) + at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:335) + at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:471) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1498) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:58) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:414) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:302) + at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:136) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124) + at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) + at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) + at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) + at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:248) + at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:138) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$8(ClassBasedTestDescriptor.java:363) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:368) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$9(ClassBasedTestDescriptor.java:363) + at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) + at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) + at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) + at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) + at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) + at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) + at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:362) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:283) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:282) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:272) + at java.base/java.util.Optional.orElseGet(Optional.java:364) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:271) + at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:102) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:101) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:66) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:96) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:75) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75) + at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) + at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) + at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) + at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source) + at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) + at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:133) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) +2023-05-23 15:43:23 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Constraint "FK3106DKJT5HW3VT0WDBDTWAWBD" already exists; SQL statement: +alter table movie add constraint FK3106dkjt5hw3vt0wdbdtwawbd foreign key (genre_fk) references genre [90045-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:632) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:109) + at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:72) + at org.h2.command.ddl.AlterTable.update(AlterTable.java:46) + at org.h2.command.CommandContainer.update(CommandContainer.java:169) + at org.h2.command.Command.executeUpdate(Command.java:252) + at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:252) + at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223) + at com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:94) + at com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java) + at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigrator.java:581) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlStrings(AbstractSchemaMigrator.java:526) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applyForeignKeys(AbstractSchemaMigrator.java:452) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchemaMigrator.java:263) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:123) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:192) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:81) + at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:335) + at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:471) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1498) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:58) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:414) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:302) + at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:136) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124) + at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) + at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) + at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) + at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:248) + at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:138) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$8(ClassBasedTestDescriptor.java:363) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:368) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$9(ClassBasedTestDescriptor.java:363) + at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) + at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) + at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) + at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) + at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) + at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) + at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) + at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:362) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:283) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:282) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:272) + at java.base/java.util.Optional.orElseGet(Optional.java:364) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:271) + at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:102) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:101) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:66) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:96) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:75) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75) + at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) + at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) + at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) + at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source) + at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) + at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:133) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) diff --git a/src/main/java/ru/ulstu/is/sbapp/Customer/Controller/CustomerController.java b/src/main/java/ru/ulstu/is/sbapp/Customer/Controller/CustomerController.java new file mode 100644 index 0000000..580d90a --- /dev/null +++ b/src/main/java/ru/ulstu/is/sbapp/Customer/Controller/CustomerController.java @@ -0,0 +1,42 @@ +package ru.ulstu.is.sbapp.Customer.Controller; + +import org.springframework.web.bind.annotation.*; +import ru.ulstu.is.sbapp.Customer.Service.CustomerService; + +import java.util.List; + +@RestController +@RequestMapping("/customer") +public class CustomerController { + private final CustomerService customerService; + + public CustomerController(CustomerService customerService) + { + this.customerService = customerService; + } + + @GetMapping("/{id}") + public CustomerDTO getCustomer(@PathVariable Long id) { + return new CustomerDTO(customerService.findCustomer(id)); + } + + @GetMapping + public List getCustomers() { + return customerService.findAllCustomers().stream().map(CustomerDTO::new).toList(); + } + + @PostMapping + public CustomerDTO createCustomer(@RequestParam("fullName") String fullName, @RequestParam("password") String password ) { + return new CustomerDTO(customerService.addCustomer(fullName,password)); + } + + @PutMapping("/{id}") + public CustomerDTO updateCustomer(@PathVariable Long id, @RequestParam("fullName") String fullName) { + return new CustomerDTO(customerService.updateCustomer(id,fullName)); + } + + @DeleteMapping("/{id}") + public CustomerDTO deleteCustomer(@PathVariable Long id) { + return new CustomerDTO(customerService.deleteCustomer(id)); + } +} diff --git a/src/main/java/ru/ulstu/is/sbapp/Customer/Controller/CustomerDTO.java b/src/main/java/ru/ulstu/is/sbapp/Customer/Controller/CustomerDTO.java new file mode 100644 index 0000000..d17deb0 --- /dev/null +++ b/src/main/java/ru/ulstu/is/sbapp/Customer/Controller/CustomerDTO.java @@ -0,0 +1,47 @@ +package ru.ulstu.is.sbapp.Customer.Controller; + +import ru.ulstu.is.sbapp.Customer.Model.Customer; +import ru.ulstu.is.sbapp.Movie.Controller.MovieDTO; + +import java.util.List; + +public class CustomerDTO { + private final long id; + private final String first_name; + private final String middle_name; + private final String last_name; + private final String password; + private final List movies; + public CustomerDTO(Customer customer) { + this.id = customer.getId(); + this.first_name = customer.getFirst_name(); + this.middle_name = customer.getMiddle_name(); + this.last_name = customer.getLast_name(); + this.password = customer.getPassword(); + this.movies = customer.getMovies().stream().map(MovieDTO::new).toList(); + } + + public long getID() { + return id; + } + + public String getFirst_name() { + return first_name; + } + + public String getLast_name() { + return last_name; + } + + public String getMiddle_name() { + return middle_name; + } + + public String getPassword() { + return password; + } + + public List getMovies() { + return movies; + } +} diff --git a/src/main/java/ru/ulstu/is/sbapp/Customer/Exception/CustomerNotFoundException.java b/src/main/java/ru/ulstu/is/sbapp/Customer/Exception/CustomerNotFoundException.java new file mode 100644 index 0000000..0db5b8e --- /dev/null +++ b/src/main/java/ru/ulstu/is/sbapp/Customer/Exception/CustomerNotFoundException.java @@ -0,0 +1,7 @@ +package ru.ulstu.is.sbapp.Customer.Exception; + +public class CustomerNotFoundException extends RuntimeException{ + public CustomerNotFoundException(Long id){ + super(String.format("Customer with id [%s] is not found", id)); + } +} diff --git a/src/main/java/ru/ulstu/is/sbapp/Models/Customer.java b/src/main/java/ru/ulstu/is/sbapp/Customer/Model/Customer.java similarity index 79% rename from src/main/java/ru/ulstu/is/sbapp/Models/Customer.java rename to src/main/java/ru/ulstu/is/sbapp/Customer/Model/Customer.java index 276fb83..2cf66f1 100644 --- a/src/main/java/ru/ulstu/is/sbapp/Models/Customer.java +++ b/src/main/java/ru/ulstu/is/sbapp/Customer/Model/Customer.java @@ -1,10 +1,13 @@ -package ru.ulstu.is.sbapp.Models; +package ru.ulstu.is.sbapp.Customer.Model; +import ru.ulstu.is.sbapp.Movie.Model.Movie; + import javax.persistence.*; import java.util.ArrayList; import java.util.List; import java.util.Objects; +import javax.validation.constraints.NotBlank; @Entity public class Customer @@ -12,13 +15,17 @@ public class Customer @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; - @Column(nullable = false) + @Column + @NotBlank(message = "Firstname can't be null or empty") private String first_name; - @Column(nullable = false) + @Column + @NotBlank(message = "Lastname can't be null or empty") private String last_name; - @Column() + @Column private String middle_name; - + @Column + @NotBlank(message = "Password can't be empty") + private String password; @OneToMany(fetch = FetchType.EAGER) private List movies; @@ -27,11 +34,12 @@ public class Customer { } - public Customer(String fullName) + public Customer(String fullName,String password) { String[] partsName = fullName.split(" "); this.first_name = partsName[0]; this.last_name = partsName[1]; + this.password = password; if(partsName.length == 3) { this.middle_name = partsName[2]; @@ -43,6 +51,7 @@ public class Customer { return id; } + public String getPassword() {return password;} public String getFirst_name() { diff --git a/src/main/java/ru/ulstu/is/sbapp/Customer/Repository/CustomerRepository.java b/src/main/java/ru/ulstu/is/sbapp/Customer/Repository/CustomerRepository.java new file mode 100644 index 0000000..dc2aa1c --- /dev/null +++ b/src/main/java/ru/ulstu/is/sbapp/Customer/Repository/CustomerRepository.java @@ -0,0 +1,7 @@ +package ru.ulstu.is.sbapp.Customer.Repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import ru.ulstu.is.sbapp.Customer.Model.Customer; + +public interface CustomerRepository extends JpaRepository { +} diff --git a/src/main/java/ru/ulstu/is/sbapp/Customer/Service/CustomerService.java b/src/main/java/ru/ulstu/is/sbapp/Customer/Service/CustomerService.java new file mode 100644 index 0000000..04d7dad --- /dev/null +++ b/src/main/java/ru/ulstu/is/sbapp/Customer/Service/CustomerService.java @@ -0,0 +1,98 @@ +package ru.ulstu.is.sbapp.Customer.Service; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; +import ru.ulstu.is.sbapp.Customer.Exception.CustomerNotFoundException; +import ru.ulstu.is.sbapp.Customer.Model.Customer; +import ru.ulstu.is.sbapp.Customer.Repository.CustomerRepository; +import ru.ulstu.is.sbapp.Utilities.validation.ValidatorUtil; +import javax.persistence.EntityNotFoundException; + +import java.util.List; +import java.util.Optional; + +@Service +public class CustomerService +{ + private final CustomerRepository customerRepository; + private final ValidatorUtil validatorUtil; + + public CustomerService(CustomerRepository customerRepository, ValidatorUtil validatorUtil) { + this.customerRepository = customerRepository; + this.validatorUtil = validatorUtil; + } + + @Transactional + public Customer addCustomer(String fullName,String password) + { + if(!StringUtils.hasText(fullName)) + { + throw new IllegalArgumentException("Customer's name or surname is missing"); + } + + if(!StringUtils.hasText(password)) + { + throw new IllegalArgumentException("Customer's name or surname is missing"); + } + + final Customer customer = new Customer(fullName,password); + validatorUtil.validate(customer); + return customerRepository.save(customer); + } + + @Transactional(readOnly = true) + public Customer findCustomer(Long id) + { + final Optional student = customerRepository.findById(id); + return student.orElseThrow(() -> new CustomerNotFoundException(id)); + } + + @Transactional(readOnly = true) + public List findAllCustomers() + { + return customerRepository.findAll(); + } + + @Transactional + public Customer updateCustomer(Long id, String fullName) + { + if(!StringUtils.hasText(fullName)) + { + throw new IllegalArgumentException("Customer's name or surname is missing"); + } + final Optional customer = customerRepository.findById(id); + if(customer.isEmpty()) + { + throw new CustomerNotFoundException(id); + } + final Customer specificCustomer = customer.get(); + specificCustomer.setFirst_name(fullName); + specificCustomer.setLast_name(fullName); + specificCustomer.setMiddle_name(fullName); + + validatorUtil.validate(specificCustomer); + + return customerRepository.save(specificCustomer); + } + + @Transactional + public Customer deleteCustomer(Long id) + { + final Optional customer = customerRepository.findById(id); + if(customer.isEmpty()) + { + throw new CustomerNotFoundException(id); + } + final Customer specificCustomer = customer.get(); + + customerRepository.delete(specificCustomer); + return specificCustomer; + } + + @Transactional + public void deleteAllCustomers() + { + customerRepository.deleteAll(); + } +} diff --git a/src/main/java/ru/ulstu/is/sbapp/Genre/Controller/GenreContoller.java b/src/main/java/ru/ulstu/is/sbapp/Genre/Controller/GenreContoller.java new file mode 100644 index 0000000..7734d9a --- /dev/null +++ b/src/main/java/ru/ulstu/is/sbapp/Genre/Controller/GenreContoller.java @@ -0,0 +1,42 @@ +package ru.ulstu.is.sbapp.Genre.Controller; + +import org.springframework.web.bind.annotation.*; +import ru.ulstu.is.sbapp.Genre.Service.GenreService; +import java.util.List; +@RestController +@RequestMapping("/genre") +public class GenreContoller { + private final GenreService genreService; + + public GenreContoller(GenreService genreService) { + this.genreService = genreService; + } + + @GetMapping("/{id}") + public GenreDTO getGenre(@PathVariable Long id) { + return new GenreDTO(genreService.findGenre(id)); + } + + @GetMapping + public List getGenres() { + return genreService.findAllGenres().stream() + .map(GenreDTO::new) + .toList(); + } + + @PostMapping + public GenreDTO createGenre(@RequestParam("name") String name) { + return new GenreDTO(genreService.addGenre(name)); + } + + @PutMapping("/{id}") + public GenreDTO updateGenre(@PathVariable Long id, + @RequestParam("name") String name) { + return new GenreDTO(genreService.updateGenre(id,name)); + } + + @DeleteMapping("/{id}") + public GenreDTO deleteGenre(@PathVariable Long id) { + return new GenreDTO(genreService.deleteGenre(id)); + } +} diff --git a/src/main/java/ru/ulstu/is/sbapp/Genre/Controller/GenreDTO.java b/src/main/java/ru/ulstu/is/sbapp/Genre/Controller/GenreDTO.java new file mode 100644 index 0000000..6eeef7e --- /dev/null +++ b/src/main/java/ru/ulstu/is/sbapp/Genre/Controller/GenreDTO.java @@ -0,0 +1,29 @@ +package ru.ulstu.is.sbapp.Genre.Controller; + +import ru.ulstu.is.sbapp.Genre.Model.Genre; +import ru.ulstu.is.sbapp.Movie.Controller.MovieDTO; + +import java.util.List; + +public class GenreDTO { + + private final Long id; + private final String name; + private final List movies; + + public GenreDTO(Genre genre) { + this.id = genre.getId(); + this.name = genre.getName(); + this.movies = genre.getMovies().stream().map(MovieDTO::new).toList(); + } + public long getID() { + return id; + } + public String getName() { + return name; + } + + public List getMovies() { + return movies; + } +} diff --git a/src/main/java/ru/ulstu/is/sbapp/Genre/Exception/GenreNotFoundException.java b/src/main/java/ru/ulstu/is/sbapp/Genre/Exception/GenreNotFoundException.java new file mode 100644 index 0000000..f11c945 --- /dev/null +++ b/src/main/java/ru/ulstu/is/sbapp/Genre/Exception/GenreNotFoundException.java @@ -0,0 +1,11 @@ +package ru.ulstu.is.sbapp.Genre.Exception; + +public class GenreNotFoundException extends RuntimeException{ + public GenreNotFoundException(Long id){ + super(String.format("Genre with id [%s] is not found", id)); + } + + public GenreNotFoundException(String name){ + super(String.format("Genre with name [%s] is not found", name)); + } +} diff --git a/src/main/java/ru/ulstu/is/sbapp/Models/Genre.java b/src/main/java/ru/ulstu/is/sbapp/Genre/Model/Genre.java similarity index 84% rename from src/main/java/ru/ulstu/is/sbapp/Models/Genre.java rename to src/main/java/ru/ulstu/is/sbapp/Genre/Model/Genre.java index 56373d9..95f5794 100644 --- a/src/main/java/ru/ulstu/is/sbapp/Models/Genre.java +++ b/src/main/java/ru/ulstu/is/sbapp/Genre/Model/Genre.java @@ -1,6 +1,9 @@ -package ru.ulstu.is.sbapp.Models; +package ru.ulstu.is.sbapp.Genre.Model; + +import ru.ulstu.is.sbapp.Movie.Model.Movie; import javax.persistence.*; +import javax.validation.constraints.NotBlank; import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -11,7 +14,8 @@ public class Genre @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; - @Column(nullable = false) + @Column + @NotBlank(message = "Genre's can't be null or empty") private String name; @OneToMany(fetch = FetchType.EAGER, mappedBy = "genre") diff --git a/src/main/java/ru/ulstu/is/sbapp/Genre/Repository/GenreRepository.java b/src/main/java/ru/ulstu/is/sbapp/Genre/Repository/GenreRepository.java new file mode 100644 index 0000000..85022fd --- /dev/null +++ b/src/main/java/ru/ulstu/is/sbapp/Genre/Repository/GenreRepository.java @@ -0,0 +1,16 @@ +package ru.ulstu.is.sbapp.Genre.Repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; +import ru.ulstu.is.sbapp.Genre.Model.Genre; +import ru.ulstu.is.sbapp.Movie.Model.Movie; + +import java.util.List; +import java.util.Optional; + +public interface GenreRepository extends JpaRepository { + + @Query("SELECT g FROM Genre g WHERE g.name LIKE genre") + Optional findByName(@Param("genre")String genreName); +} diff --git a/src/main/java/ru/ulstu/is/sbapp/Genre/Service/GenreService.java b/src/main/java/ru/ulstu/is/sbapp/Genre/Service/GenreService.java new file mode 100644 index 0000000..1e629f1 --- /dev/null +++ b/src/main/java/ru/ulstu/is/sbapp/Genre/Service/GenreService.java @@ -0,0 +1,98 @@ +package ru.ulstu.is.sbapp.Genre.Service; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; +import ru.ulstu.is.sbapp.Customer.Repository.CustomerRepository; +import ru.ulstu.is.sbapp.Genre.Exception.GenreNotFoundException; +import ru.ulstu.is.sbapp.Genre.Model.Genre; +import ru.ulstu.is.sbapp.Genre.Repository.GenreRepository; + +import javax.persistence.EntityManager; +import javax.persistence.EntityNotFoundException; +import javax.persistence.PersistenceContext; +import ru.ulstu.is.sbapp.Utilities.validation.ValidatorUtil; +import java.util.List; +import java.util.Optional; + +@Service +public class GenreService +{ + private final GenreRepository genreRepository; + private final ValidatorUtil validatorUtil; + + public GenreService(GenreRepository genreRepository, ValidatorUtil validatorUtil) { + this.genreRepository = genreRepository; + this.validatorUtil = validatorUtil; + } + + @Transactional + public Genre addGenre(String name) { + if(!StringUtils.hasText(name)) + { + throw new IllegalArgumentException("Genre's name is missing"); + } + final Genre genre = new Genre(name); + validatorUtil.validate(genre); + + return genreRepository.save(genre); + } + + @Transactional(readOnly = true) + public Genre findGenre(Long id) { + final Optional genre = genreRepository.findById(id); + return genre.orElseThrow(() -> new GenreNotFoundException(id)); + } + + @Transactional(readOnly = true) + public Genre findGenreByName(String name) + { + final Optional genre = genreRepository.findByName(name); + return genre.orElseThrow(() -> new GenreNotFoundException(name)); + } + + + @Transactional(readOnly = true) + public List findAllGenres() + { + return genreRepository.findAll(); + } + + @Transactional + public Genre updateGenre(Long id, String name) { + if(!StringUtils.hasText(name)) + { + throw new IllegalArgumentException("Genre's name is missing"); + } + final Optional genre = genreRepository.findById(id); + if(genre.isEmpty()) + { + throw new GenreNotFoundException(id); + } + Genre specificGenre = genre.get(); + specificGenre.setName(name); + + validatorUtil.validate(genre); + + return genreRepository.save(specificGenre); + } + + @Transactional + public Genre deleteGenre(Long id) { + final Optional genre = genreRepository.findById(id); + if(genre.isEmpty()) + { + throw new GenreNotFoundException(id); + } + Genre specificGenre = genre.get(); + specificGenre.getMovies().clear(); + genreRepository.delete(specificGenre); + + return specificGenre; + } + + @Transactional + public void deleteAllGenres() { + genreRepository.deleteAll(); + } +} diff --git a/src/main/java/ru/ulstu/is/sbapp/Movie/Controller/MovieController.java b/src/main/java/ru/ulstu/is/sbapp/Movie/Controller/MovieController.java new file mode 100644 index 0000000..df00abc --- /dev/null +++ b/src/main/java/ru/ulstu/is/sbapp/Movie/Controller/MovieController.java @@ -0,0 +1,49 @@ +package ru.ulstu.is.sbapp.Movie.Controller; + +import org.springframework.web.bind.annotation.*; +import ru.ulstu.is.sbapp.Movie.Service.MovieService; + +import java.util.List; +@RestController +@RequestMapping("/movie") +public class MovieController { + private final MovieService movieService; + + public MovieController(MovieService movieService) { + this.movieService = movieService; + } + + @GetMapping("/{id}") + public MovieDTO getMovie(@PathVariable Long id) { + return new MovieDTO(movieService.findMovie(id)); + } + + @GetMapping + public List getMovies() { + return movieService.findAllMovies().stream() + .map(MovieDTO::new) + .toList(); + } + + @GetMapping("/{genre}") + public List getSpecificMovies(@RequestParam("genre") String genreName) { + return movieService.findAllSpecificMovies(genreName).stream() + .map(MovieDTO::new) + .toList(); + } + @PostMapping + public MovieDTO createMovie(@RequestParam("title") String title, @RequestParam("length") int length, @RequestParam("score") double score, @RequestParam("genre") Long genreId, @RequestParam("customer") Long customerId) { + return new MovieDTO(movieService.addMovie(title,length,score,genreId,customerId)); + } + + @PutMapping("/{id}") + public MovieDTO updateMovie(@PathVariable Long id, + @RequestParam("title") String title,@RequestParam("length") int length,@RequestParam("score") double score ) { + return new MovieDTO(movieService.updateMovie(id,title,length,score)); + } + + @DeleteMapping("/{customerId}/{id}") + public MovieDTO deleteMovie(@PathVariable("customerId") Long customerId,@PathVariable Long id) { + return new MovieDTO(movieService.deleteMovie(id,customerId)); + } +} diff --git a/src/main/java/ru/ulstu/is/sbapp/Movie/Controller/MovieDTO.java b/src/main/java/ru/ulstu/is/sbapp/Movie/Controller/MovieDTO.java new file mode 100644 index 0000000..f5ae144 --- /dev/null +++ b/src/main/java/ru/ulstu/is/sbapp/Movie/Controller/MovieDTO.java @@ -0,0 +1,38 @@ +package ru.ulstu.is.sbapp.Movie.Controller; + +import ru.ulstu.is.sbapp.Genre.Model.Genre; +import ru.ulstu.is.sbapp.Movie.Model.Movie; + +import java.util.List; + +public class MovieDTO { + + private final Long id; + private final String title; + private final int length; + private final double score; + private final Genre genre; + + public MovieDTO(Movie movie) { + this.id = movie.getId(); + this.title = movie.getTitle(); + this.length = movie.getLength(); + this.score = movie.getScore(); + this.genre = movie.getGenre(); + } + public long getID() { + return id; + } + public String getTitle() { + return title; + } + public int getLength() { + return length; + } + public double getScore() { + return score; + } + public Genre getGenre() { + return genre; + } +} diff --git a/src/main/java/ru/ulstu/is/sbapp/Movie/Exception/MovieNotFoundException.java b/src/main/java/ru/ulstu/is/sbapp/Movie/Exception/MovieNotFoundException.java new file mode 100644 index 0000000..97d6165 --- /dev/null +++ b/src/main/java/ru/ulstu/is/sbapp/Movie/Exception/MovieNotFoundException.java @@ -0,0 +1,7 @@ +package ru.ulstu.is.sbapp.Movie.Exception; + +public class MovieNotFoundException extends RuntimeException{ + public MovieNotFoundException(Long id){ + super(String.format("Movie with id [%s] is not found", id)); + } +} diff --git a/src/main/java/ru/ulstu/is/sbapp/Models/Movie.java b/src/main/java/ru/ulstu/is/sbapp/Movie/Model/Movie.java similarity index 76% rename from src/main/java/ru/ulstu/is/sbapp/Models/Movie.java rename to src/main/java/ru/ulstu/is/sbapp/Movie/Model/Movie.java index 1e84e98..39a52b7 100644 --- a/src/main/java/ru/ulstu/is/sbapp/Models/Movie.java +++ b/src/main/java/ru/ulstu/is/sbapp/Movie/Model/Movie.java @@ -1,8 +1,9 @@ -package ru.ulstu.is.sbapp.Models; +package ru.ulstu.is.sbapp.Movie.Model; + +import ru.ulstu.is.sbapp.Genre.Model.Genre; import javax.persistence.*; -import java.util.ArrayList; -import java.util.List; +import javax.validation.constraints.NotBlank; import java.util.Objects; @Entity @@ -11,11 +12,14 @@ public class Movie @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; - @Column(nullable = false) + @Column + @NotBlank(message = "Movie's title can't be null or empty") private String title; - @Column(nullable = false) + @Column + @NotBlank(message = "Movie's length can't be null or empty") private int length; - @Column(nullable = false) + @Column + @NotBlank(message = "Movie's score can't be null or empty") private double score; @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "genre_fk") @@ -49,9 +53,9 @@ public class Movie this.title = title; } - public String getLength() + public int getLength() { - return Integer.toString(length); + return length; } public void setLength(int length) @@ -59,9 +63,9 @@ public class Movie this.length = length; } - public String getScore() + public double getScore() { - return Double.toString(score); + return score; } public void setScore(Double score) diff --git a/src/main/java/ru/ulstu/is/sbapp/Movie/Repository/MovieRepository.java b/src/main/java/ru/ulstu/is/sbapp/Movie/Repository/MovieRepository.java new file mode 100644 index 0000000..3fdaced --- /dev/null +++ b/src/main/java/ru/ulstu/is/sbapp/Movie/Repository/MovieRepository.java @@ -0,0 +1,14 @@ +package ru.ulstu.is.sbapp.Movie.Repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; +import ru.ulstu.is.sbapp.Genre.Model.Genre; +import ru.ulstu.is.sbapp.Movie.Model.Movie; + +import java.util.List; + +public interface MovieRepository extends JpaRepository { + @Query("SELECT m FROM Movie m WHERE :specGenre LIKE m.genre") + List findByGenre(@Param("specGenre") Genre genre); +} diff --git a/src/main/java/ru/ulstu/is/sbapp/Movie/Service/MovieService.java b/src/main/java/ru/ulstu/is/sbapp/Movie/Service/MovieService.java new file mode 100644 index 0000000..9bfd76e --- /dev/null +++ b/src/main/java/ru/ulstu/is/sbapp/Movie/Service/MovieService.java @@ -0,0 +1,136 @@ +package ru.ulstu.is.sbapp.Movie.Service; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; +import ru.ulstu.is.sbapp.Customer.Exception.CustomerNotFoundException; +import ru.ulstu.is.sbapp.Customer.Model.Customer; +import ru.ulstu.is.sbapp.Customer.Repository.CustomerRepository; +import ru.ulstu.is.sbapp.Genre.Exception.GenreNotFoundException; +import ru.ulstu.is.sbapp.Genre.Model.Genre; +import ru.ulstu.is.sbapp.Genre.Repository.GenreRepository; +import ru.ulstu.is.sbapp.Movie.Exception.MovieNotFoundException; +import ru.ulstu.is.sbapp.Movie.Model.Movie; +import ru.ulstu.is.sbapp.Movie.Repository.MovieRepository; +import ru.ulstu.is.sbapp.Utilities.validation.ValidatorUtil; + +import java.util.List; +import java.util.Optional; + +@Service +public class MovieService +{ + private final MovieRepository movieRepository; + private final GenreRepository genreRepository; + private final CustomerRepository customerRepository; + private final ValidatorUtil validatorUtil; + + public MovieService(MovieRepository movieRepository, GenreRepository genreRepository, CustomerRepository customerRepository, ValidatorUtil validatorUtil) { + this.movieRepository = movieRepository; + this.validatorUtil = validatorUtil; + this.genreRepository = genreRepository; + this.customerRepository = customerRepository; + } + + @Transactional + public Movie addMovie(String title, int length, double score, Long genre, Long customer) + { + if(!StringUtils.hasText(title) || length == 0 || score == 0 || genre == 0 || customer == 0) + { + throw new IllegalArgumentException("Some of the movie's properties are incorrect."); + } + final Optional specGenre = genreRepository.findById(genre); + final Optional specCustomer = customerRepository.findById(customer); + + if(specGenre.isEmpty()) + { + throw new GenreNotFoundException(genre); + } + + final Movie movie = new Movie(title,length,score,specGenre.get()); + movie.getGenre().getMovies().add(movie); + + if(specCustomer.isEmpty()) + { + throw new CustomerNotFoundException(customer); + } + + specCustomer.get().getMovies().add(movie); + validatorUtil.validate(movie); + return movieRepository.save(movie); + } + + @Transactional(readOnly = true) + public Movie findMovie(Long id) + { + final Optional movie = movieRepository.findById(id); + return movie.orElseThrow(() -> new MovieNotFoundException(id)); + } + + @Transactional(readOnly = true) + public List findAllMovies() + { + return movieRepository.findAll(); + } + + @Transactional + public Movie updateMovie(Long id, String title, int length, double score) + { + if(!StringUtils.hasText(title) || length == 0 || score == 0) + { + throw new IllegalArgumentException("Some of the movie's properties are incorrect."); + } + final Optional movie = movieRepository.findById(id); + if(movie.isEmpty()) + { + throw new MovieNotFoundException(id); + } + + Movie specificMovie = movie.get(); + Genre specificGenre = movie.get().getGenre(); + + specificMovie.setLength(length); + specificMovie.setGenre(specificGenre); + specificMovie.setTitle(title); + specificMovie.setScore(score); + + return movieRepository.save(specificMovie); + } + + @Transactional + public Movie deleteMovie(Long id, Long customerId) + { + final Optional movie = movieRepository.findById(id); + if(movie.isEmpty()) + { + throw new MovieNotFoundException(id); + } + Movie specificMovie = movie.get(); + + specificMovie.getGenre().getMovies().remove(specificMovie); + + final Optional customer = customerRepository.findById(customerId); + if(customer.isEmpty()) + { + throw new CustomerNotFoundException(id); + } + + customer.get().getMovies().remove(specificMovie); + + movieRepository.delete(specificMovie); + + return specificMovie; + } + + @Transactional + public List findAllSpecificMovies(String genreName) + { + return movieRepository.findByGenre(genreRepository.findByName(genreName).get()); + } + + @Transactional + public void deleteAllMovies() + { + movieRepository.deleteAll(); + } +} diff --git a/src/main/java/ru/ulstu/is/sbapp/SbappApplication.java b/src/main/java/ru/ulstu/is/sbapp/SbappApplication.java index 133bc70..6aa2147 100644 --- a/src/main/java/ru/ulstu/is/sbapp/SbappApplication.java +++ b/src/main/java/ru/ulstu/is/sbapp/SbappApplication.java @@ -2,10 +2,12 @@ package ru.ulstu.is.sbapp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; @SpringBootApplication +@ComponentScan(basePackages = { "ru.ulstu.is.sbapp.Movie","ru.ulstu.is.sbapp.Customer","ru.ulstu.is.sbapp.Genre"}) public class SbappApplication { public static void main(String[] args) { diff --git a/src/main/java/ru/ulstu/is/sbapp/Services/CustomerService.java b/src/main/java/ru/ulstu/is/sbapp/Services/CustomerService.java deleted file mode 100644 index 01d3156..0000000 --- a/src/main/java/ru/ulstu/is/sbapp/Services/CustomerService.java +++ /dev/null @@ -1,75 +0,0 @@ -package ru.ulstu.is.sbapp.Services; - -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.StringUtils; -import ru.ulstu.is.sbapp.Models.Customer; - -import javax.persistence.EntityManager; -import javax.persistence.EntityNotFoundException; -import javax.persistence.PersistenceContext; -import java.util.List; - -@Service -public class CustomerService -{ - @PersistenceContext - private EntityManager em; - - @Transactional - public Customer addCustomer(String fullName) - { - if(!StringUtils.hasText(fullName)) - { - throw new IllegalArgumentException("Customer's name or surname is missing"); - } - final Customer customer = new Customer(fullName); - em.persist(customer); - return customer; - } - - @Transactional(readOnly = true) - public Customer findCustomer(Long id) - { - final Customer customer = em.find(Customer.class,id); - if(customer == null) - { - throw new EntityNotFoundException(String.format("Customer with id [%s] is not found", id)); - } - return customer; - } - - @Transactional(readOnly = true) - public List findAllCustomers() - { - return em.createQuery("select c from Customer c",Customer.class).getResultList(); - } - - @Transactional - public Customer updateCustomer(Long id, String fullName) - { - if(!StringUtils.hasText(fullName)) - { - throw new IllegalArgumentException("Customer's name or surname is missing"); - } - final Customer specificCustomer = findCustomer(id); - specificCustomer.setFirst_name(fullName); - specificCustomer.setLast_name(fullName); - specificCustomer.setMiddle_name(fullName); - return em.merge(specificCustomer); - } - - @Transactional - public Customer deleteCustomer(Long id) - { - final Customer specificCustomer = findCustomer(id); - em.remove(specificCustomer); - return specificCustomer; - } - - @Transactional - public void deleteAllCustomers() - { - em.createQuery("delete from Customer").executeUpdate(); - } -} diff --git a/src/main/java/ru/ulstu/is/sbapp/Services/GenreService.java b/src/main/java/ru/ulstu/is/sbapp/Services/GenreService.java deleted file mode 100644 index cae11a2..0000000 --- a/src/main/java/ru/ulstu/is/sbapp/Services/GenreService.java +++ /dev/null @@ -1,73 +0,0 @@ -package ru.ulstu.is.sbapp.Services; - -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.StringUtils; -import ru.ulstu.is.sbapp.Models.Genre; - -import javax.persistence.EntityManager; -import javax.persistence.EntityNotFoundException; -import javax.persistence.PersistenceContext; -import java.util.List; - -@Service -public class GenreService -{ - @PersistenceContext - private EntityManager em; - - @Transactional - public Genre addGenre(String name) - { - if(!StringUtils.hasText(name)) - { - throw new IllegalArgumentException("Genre's name is missing"); - } - final Genre genre = new Genre(name); - em.persist(genre); - return genre; - } - - @Transactional(readOnly = true) - public Genre findGenre(Long id) - { - final Genre specificGenre = em.find(Genre.class,id); - if(specificGenre == null) - { - throw new EntityNotFoundException(String.format("Genre with id [%s] is not found", id)); - } - return specificGenre; - } - - @Transactional(readOnly = true) - public List findAllGenres() - { - return em.createQuery("select g from Genre g",Genre.class).getResultList(); - } - - @Transactional - public Genre updateGenre(Long id, String name) - { - if(!StringUtils.hasText(name)) - { - throw new IllegalArgumentException("Genre's name is missing"); - } - final Genre specificGenre = findGenre(id); - specificGenre.setName(name); - return em.merge(specificGenre); - } - - @Transactional - public Genre deleteGenre(Long id) - { - final Genre specificGenre = findGenre(id); - em.remove(specificGenre); - return specificGenre; - } - - @Transactional - public void deleteAllGenres() - { - em.createQuery("delete from Genre").executeUpdate(); - } -} diff --git a/src/main/java/ru/ulstu/is/sbapp/Services/MovieService.java b/src/main/java/ru/ulstu/is/sbapp/Services/MovieService.java deleted file mode 100644 index 8524bd2..0000000 --- a/src/main/java/ru/ulstu/is/sbapp/Services/MovieService.java +++ /dev/null @@ -1,89 +0,0 @@ -package ru.ulstu.is.sbapp.Services; - - -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.StringUtils; -import ru.ulstu.is.sbapp.Models.Movie; -import ru.ulstu.is.sbapp.Models.Customer; -import ru.ulstu.is.sbapp.Models.Genre; -import javax.persistence.EntityManager; -import javax.persistence.EntityNotFoundException; -import javax.persistence.PersistenceContext; -import java.util.List; - -@Service -public class MovieService -{ - @PersistenceContext - private EntityManager em; - - @Transactional - public Movie addMovie(String title, int length, double score, Genre genre, Customer customer) - { - if(!StringUtils.hasText(title) || length == 0 || score == 0 || genre == null || customer == null) - { - throw new IllegalArgumentException("Some of the movie's properties are incorrect."); - } - final Movie movie = new Movie(title,length,score,genre); - movie.getGenre().getMovies().add(movie); - customer.getMovies().add(movie); - - em.persist(movie); - return movie; - } - - @Transactional(readOnly = true) - public Movie findMovie(Long id) - { - final Movie specificMovie = em.find(Movie.class, id); - if(specificMovie == null) - { - throw new EntityNotFoundException(String.format("Movie with id [%s] is not found", id)); - } - return specificMovie; - } - - @Transactional(readOnly = true) - public List findAllMovies() - { - return em.createQuery("select m from Movie m",Movie.class).getResultList(); - } - - @Transactional - public Movie updateMovie(Long id, String title, int length, double score, Genre genre) - { - if(!StringUtils.hasText(title) || length == 0 || score == 0 || genre == null) - { - throw new IllegalArgumentException("Some of the movie's properties are incorrect."); - } - final Movie specificMovie = findMovie(id); - specificMovie.setLength(length); - specificMovie.setGenre(genre); - specificMovie.setTitle(title); - specificMovie.setScore(score); - return em.merge(specificMovie); - } - - @Transactional - public Movie deleteMovie(Long id, Customer customer) - { - final Movie specificMovie = findMovie(id); - specificMovie.getGenre().getMovies().remove(specificMovie); - customer.getMovies().remove(specificMovie); - em.remove(specificMovie); - return specificMovie; - } - - @Transactional - public List findAllSpecificMovies(Genre specGenre) - { - return em.createQuery("SELECT m FROM Movie m WHERE m.genre = :genre",Movie.class).setParameter("genre",specGenre).getResultList(); - } - - @Transactional - public void deleteAllMovies() - { - em.createQuery("delete from Movie").executeUpdate(); - } -} diff --git a/src/main/java/ru/ulstu/is/sbapp/Utilities/error/AdviceController.java b/src/main/java/ru/ulstu/is/sbapp/Utilities/error/AdviceController.java new file mode 100644 index 0000000..8da8900 --- /dev/null +++ b/src/main/java/ru/ulstu/is/sbapp/Utilities/error/AdviceController.java @@ -0,0 +1,42 @@ +package ru.ulstu.is.sbapp.Utilities.error; + +import org.springframework.context.support.DefaultMessageSourceResolvable; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import ru.ulstu.is.sbapp.Customer.Exception.CustomerNotFoundException; +import ru.ulstu.is.sbapp.Genre.Exception.GenreNotFoundException; +import ru.ulstu.is.sbapp.Movie.Exception.MovieNotFoundException; +import ru.ulstu.is.sbapp.Utilities.validation.ValidationException; + +import java.util.stream.Collectors; + +@ControllerAdvice +public class AdviceController { + @ExceptionHandler({ + MovieNotFoundException.class, + GenreNotFoundException.class, + CustomerNotFoundException.class, + ValidationException.class + }) + public ResponseEntity handleException(Throwable e) { + return new ResponseEntity<>(e.getMessage(), HttpStatus.BAD_REQUEST); + } + + @ExceptionHandler(MethodArgumentNotValidException.class) + public ResponseEntity handleBindException(MethodArgumentNotValidException e) { + final ValidationException validationException = new ValidationException( + e.getBindingResult().getAllErrors().stream() + .map(DefaultMessageSourceResolvable::getDefaultMessage) + .collect(Collectors.toSet())); + return handleException(validationException); + } + + @ExceptionHandler(Exception.class) + public ResponseEntity handleUnknownException(Throwable e) { + e.printStackTrace(); + return new ResponseEntity<>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR); + } +} diff --git a/src/main/java/ru/ulstu/is/sbapp/Utilities/validation/ValidationException.java b/src/main/java/ru/ulstu/is/sbapp/Utilities/validation/ValidationException.java new file mode 100644 index 0000000..994aaa8 --- /dev/null +++ b/src/main/java/ru/ulstu/is/sbapp/Utilities/validation/ValidationException.java @@ -0,0 +1,9 @@ +package ru.ulstu.is.sbapp.Utilities.validation; + +import java.util.Set; + +public class ValidationException extends RuntimeException { + public ValidationException(Set errors) { + super(String.join("\n", errors)); + } +} diff --git a/src/main/java/ru/ulstu/is/sbapp/Utilities/validation/ValidatorUtil.java b/src/main/java/ru/ulstu/is/sbapp/Utilities/validation/ValidatorUtil.java new file mode 100644 index 0000000..372c5dd --- /dev/null +++ b/src/main/java/ru/ulstu/is/sbapp/Utilities/validation/ValidatorUtil.java @@ -0,0 +1,30 @@ +package ru.ulstu.is.sbapp.Utilities.validation; + +import org.springframework.stereotype.Component; + +import javax.validation.ConstraintViolation; +import javax.validation.Validation; +import javax.validation.Validator; +import javax.validation.ValidatorFactory; +import java.util.Set; +import java.util.stream.Collectors; + +@Component +public class ValidatorUtil { + private final Validator validator; + + public ValidatorUtil() { + try (ValidatorFactory factory = Validation.buildDefaultValidatorFactory()) { + this.validator = factory.getValidator(); + } + } + + public void validate(T object) { + final Set> errors = validator.validate(object); + if (!errors.isEmpty()) { + throw new ValidationException(errors.stream() + .map(ConstraintViolation::getMessage) + .collect(Collectors.toSet())); + } + } +} diff --git a/src/test/java/ru/ulstu/is/sbapp/JpaCustomerTests.java b/src/test/java/ru/ulstu/is/sbapp/JpaCustomerTests.java index a09ddaf..a27dec5 100644 --- a/src/test/java/ru/ulstu/is/sbapp/JpaCustomerTests.java +++ b/src/test/java/ru/ulstu/is/sbapp/JpaCustomerTests.java @@ -1,14 +1,13 @@ package ru.ulstu.is.sbapp; -import com.fasterxml.jackson.annotation.JsonTypeInfo; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; -import ru.ulstu.is.sbapp.Models.Customer; -import ru.ulstu.is.sbapp.Services.CustomerService; +import ru.ulstu.is.sbapp.Customer.Model.Customer; +import ru.ulstu.is.sbapp.Customer.Service.CustomerService; import javax.persistence.EntityNotFoundException; import java.util.List; @@ -25,7 +24,7 @@ public class JpaCustomerTests void testCustomerCreate() { customerService.deleteAllCustomers(); - final Customer customer = customerService.addCustomer("Nikita Lisov"); + final Customer customer = customerService.addCustomer("Nikita Lisov","1234"); log.info(customer.toString()); Assertions.assertNotNull(customer.getId()); } @@ -34,7 +33,7 @@ public class JpaCustomerTests void testCustomerRead() { customerService.deleteAllCustomers(); - final Customer customer = customerService.addCustomer("Nikita Lisov"); + final Customer customer = customerService.addCustomer("Nikita Lisov","1234"); log.info(customer.toString()); final Customer findCustomer = customerService.findCustomer(customer.getId()); log.info(findCustomer.toString()); @@ -52,8 +51,8 @@ public class JpaCustomerTests void testCustomerReadAll() { customerService.deleteAllCustomers(); - customerService.addCustomer("Nikita Lisov"); - customerService.addCustomer("Evelina Aust Sergeevna"); + customerService.addCustomer("Nikita Lisov","1234"); + customerService.addCustomer("Evelina Aust Sergeevna","12345"); final List customers = customerService.findAllCustomers(); log.info(customers.toString()); Assertions.assertEquals(customers.size(), 2); @@ -72,7 +71,7 @@ public class JpaCustomerTests void testCustomerChanges() { customerService.deleteAllCustomers(); - final Customer customer = customerService.addCustomer("Nikita Lisov"); + final Customer customer = customerService.addCustomer("Nikita Lisov","1234"); log.info(customer.toString()); final Customer changedCustomer = customerService.updateCustomer(customer.getId(),"Evelina Potter"); log.info(changedCustomer.toString()); @@ -84,8 +83,8 @@ public class JpaCustomerTests { customerService.deleteAllCustomers(); - final Customer customer1 = customerService.addCustomer("Nikita Lisov"); - final Customer customer2 = customerService.addCustomer("Evelina Potter"); + final Customer customer1 = customerService.addCustomer("Nikita Lisov","1234"); + final Customer customer2 = customerService.addCustomer("Evelina Potter","12345"); customerService.deleteCustomer(customer1.getId()); Assertions.assertThrows(EntityNotFoundException.class, () -> customerService.findCustomer(customer1.getId())); diff --git a/src/test/java/ru/ulstu/is/sbapp/JpaGenreTests.java b/src/test/java/ru/ulstu/is/sbapp/JpaGenreTests.java index 66ba21e..f78720c 100644 --- a/src/test/java/ru/ulstu/is/sbapp/JpaGenreTests.java +++ b/src/test/java/ru/ulstu/is/sbapp/JpaGenreTests.java @@ -6,9 +6,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; -import ru.ulstu.is.sbapp.Models.Customer; -import ru.ulstu.is.sbapp.Models.Genre; -import ru.ulstu.is.sbapp.Services.GenreService; +import ru.ulstu.is.sbapp.Genre.Model.Genre; +import ru.ulstu.is.sbapp.Genre.Service.GenreService; import javax.persistence.EntityNotFoundException; import java.util.List; diff --git a/src/test/java/ru/ulstu/is/sbapp/JpaMovieTests.java b/src/test/java/ru/ulstu/is/sbapp/JpaMovieTests.java index 5789bce..1168e52 100644 --- a/src/test/java/ru/ulstu/is/sbapp/JpaMovieTests.java +++ b/src/test/java/ru/ulstu/is/sbapp/JpaMovieTests.java @@ -6,12 +6,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; -import ru.ulstu.is.sbapp.Services.MovieService; -import ru.ulstu.is.sbapp.Models.Movie; -import ru.ulstu.is.sbapp.Models.Customer; -import ru.ulstu.is.sbapp.Services.CustomerService; -import ru.ulstu.is.sbapp.Models.Genre; -import ru.ulstu.is.sbapp.Services.GenreService; +import ru.ulstu.is.sbapp.Movie.Service.MovieService; +import ru.ulstu.is.sbapp.Movie.Model.Movie; +import ru.ulstu.is.sbapp.Customer.Model.Customer; +import ru.ulstu.is.sbapp.Customer.Service.CustomerService; +import ru.ulstu.is.sbapp.Genre.Model.Genre; +import ru.ulstu.is.sbapp.Genre.Service.GenreService; import javax.persistence.EntityNotFoundException; import java.util.ArrayList; @@ -39,10 +39,10 @@ public class JpaMovieTests final Genre genre = genreService.addGenre("Fantasy"); log.info(genre.toString()); - final Customer customer = customerService.addCustomer("Nikita Lisov"); + final Customer customer = customerService.addCustomer("Nikita Lisov","1234"); log.info(customer.toString()); - final Movie movie = movieService.addMovie("Arcane",36,4.5, genre, customer); + final Movie movie = movieService.addMovie("Arcane",36,4.5, genre.getId(), customer.getId()); log.info(movie.toString()); Assertions.assertNotNull(movie.getId()); @@ -59,10 +59,10 @@ public class JpaMovieTests final Genre genre = genreService.addGenre("Fantasy"); log.info(genre.toString()); - final Customer customer = customerService.addCustomer("Nikita Lisov"); + final Customer customer = customerService.addCustomer("Nikita Lisov","1234"); log.info(customer.toString()); - final Movie movie = movieService.addMovie("Arcane",36,4.5, genre, customer); + final Movie movie = movieService.addMovie("Arcane",36,4.5, genre.getId(), customer.getId()); log.info(movie.toString()); @@ -82,9 +82,9 @@ public class JpaMovieTests final Genre genre = genreService.addGenre("Fantasy"); log.info(genre.toString()); - final Customer customer = customerService.addCustomer("Nikita Lisov"); + final Customer customer = customerService.addCustomer("Nikita Lisov","1234"); log.info(customer.toString()); - final Movie movie = movieService.addMovie("Arcane",36,4.5, genre, customer); + final Movie movie = movieService.addMovie("Arcane",36,4.5, genre.getId(), customer.getId()); log.info(movie.toString()); log.info(customer.getMovies().toString()); @@ -104,10 +104,10 @@ public class JpaMovieTests final Genre genre = genreService.addGenre("Fantasy"); log.info(genre.toString()); - final Customer customer = customerService.addCustomer("Nikita Lisov"); + final Customer customer = customerService.addCustomer("Nikita Lisov","1234"); log.info(customer.toString()); - final Movie movie = movieService.addMovie("Arcane",36,4.5, genre, customer); + final Movie movie = movieService.addMovie("Arcane",36,4.5, genre.getId(), customer.getId()); log.info(movie.toString()); final List movies = movieService.findAllMovies(); @@ -126,16 +126,16 @@ public class JpaMovieTests final Genre genre = genreService.addGenre("Fantasy"); log.info(genre.toString()); - final Customer customer1 = customerService.addCustomer("Nikita Lisov"); + final Customer customer1 = customerService.addCustomer("Nikita Lisov","1234"); log.info(customer1.toString()); - final Customer customer2 = customerService.addCustomer("Evelina Potter"); + final Customer customer2 = customerService.addCustomer("Evelina Potter","5678"); log.info(customer2.toString()); - final Movie movie1 = movieService.addMovie("Arcane",36,4.5, genre, customer1); + final Movie movie1 = movieService.addMovie("Arcane",36,4.5, genre.getId(), customer1.getId()); log.info(movie1.toString()); - final Movie movie2 = movieService.addMovie("Harry Potter",128,10.0, genre, customer2); + final Movie movie2 = movieService.addMovie("Harry Potter",128,10.0, genre.getId(), customer2.getId()); log.info(movie2.toString()); final List movies = movieService.findAllMovies(); @@ -180,23 +180,23 @@ public class JpaMovieTests final Genre genre2 = genreService.addGenre("Sci-Fi"); log.info(genre2.toString()); - final Customer customer = customerService.addCustomer("Nikita Lisov"); + final Customer customer = customerService.addCustomer("Nikita Lisov","1234"); log.info(customer.toString()); - final Movie movie1 = movieService.addMovie("Arcane",36,4.5, genre1, customer); + final Movie movie1 = movieService.addMovie("Arcane",36,4.5, genre1.getId(), customer.getId()); log.info(movie1.toString()); - final Movie movie2 = movieService.addMovie("Harry Potter",128,10.0, genre1, customer); + final Movie movie2 = movieService.addMovie("Harry Potter",128,10.0, genre1.getId(), customer.getId()); log.info(movie2.toString()); - final Movie movie3 = movieService.addMovie("Interstellar",2,9.5, genre2, customer); + final Movie movie3 = movieService.addMovie("Interstellar",2,9.5, genre2.getId(), customer.getId()); log.info(movie3.toString()); List movies = new ArrayList<>(){}; movies.add(movie1); movies.add(movie2); - List expectedMovies = movieService.findAllSpecificMovies(genre1); + List expectedMovies = movieService.findAllSpecificMovies(genre1.getName()); log.info(expectedMovies.toString()); Assertions.assertArrayEquals(movies.toArray(),expectedMovies.toArray()); diff --git a/src/test/resources/application.properties b/src/test/resources/application.properties index 81734b8..ccc05e8 100644 --- a/src/test/resources/application.properties +++ b/src/test/resources/application.properties @@ -1,6 +1,11 @@ -spring.datasource.url=jdbc:h2:mem:testdb +spring.main.banner-mode=off +#server.port=8080 +spring.datasource.url=jdbc:h2:file:./data spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password=password spring.jpa.database-platform=org.hibernate.dialect.H2Dialect -spring.jpa.hibernate.ddl-auto=create-drop \ No newline at end of file +spring.jpa.hibernate.ddl-auto=update +spring.h2.console.enabled=true +spring.h2.console.settings.trace=false +spring.h2.console.settings.web-allow-others=false \ No newline at end of file