ã¹ããªã³ã°ããŒããå®åã§ããŸã䜿ããããªãïŒ æ·±ãèšèšãšéçºãäœéšããŠãã ããã
ð©ãã®è¬çŸ©ã¯ããŒããããã³ãŒã¹ã§ãã
æ¬è¬çŸ©ã¯ãJavaããã¯ãšã³ãéçºã®å®è·µã³ãŒã¹ãéå§ããæåã®è¬çŸ©ã§ããã¹ããªã³ã°ããŒããšJPAå®åå®å
šåŸæããŒãããã ããŸã確èªããŠãã ããã (ãªã³ã¯)
VIDEO
æ¬åœïŒ Spring BootãšJPAã®æŽ»çš
Spring Bootã¯ãè€éã§é£ããSpringãã¬ãŒã ã¯ãŒã¯ãç°¡æœã§äœ¿ããããããŸããããã«JPAãæäŸãã匷åãªORMæè¡ã远å ããããšã§ãé«ãçç£æ§ãç¶æããªããæ©æã«Webã¢ããªã±ãŒã·ã§ã³ãéçºããããšãã§ããŸãããã®ãããªç¹ãããJavaé£å¶ã§ã¯Spring BootãšJPAãæŽ»çšããŠWebã¢ããªã±ãŒã·ã§ã³ãéçºããããš ãäžççãªåŸåã§ãã
è¬çŸ©ç®æš ã¹ããªã³ã°ããŒããšJPAãç¥ã£ãŠããŠããå®åã§ãããã®æè¡ã掻çšããŠWebã¢ããªã±ãŒã·ã§ã³ãèšèšãéçºããããšã¯å¥ã®æ¬¡å
ã®åé¡ã§ããéåžžãWebã¢ããªã±ãŒã·ã§ã³ã¯æ¬¡ã®éçºããã»ã¹ãçµãŸãã
äžè¬çãªWebã¢ããªã±ãŒã·ã§ã³éçºããã»ã¹ èŠä»¶åæ ãã¡ã€ã³ãšããŒãã«ã®èšèš ã¢ãŒããã¯ãã£ã®æ§æ ã³ã¢ããžãã¹ããžãã¯ã®éçº Webå±€ã®éçº ãã¹ã ããã©ãŒãã³ã¹ã®æé©å ãã®ã¬ãã¹ã³ã§ã¯ãæ²ç€ºæ¿ã®ãããªåçŽãªäŸãè¶
ããŠãå®åã®è€éãªç¶æ³ãåçŸã§ããé£æåºŠã®é«ãäŸã䜿çšããŸãããããŠãèŠä»¶åæããèšèšãéçºããã¹ããããã©ãŒãã³ã¹ã®æé©åãŸã§ãããããã¹ãŠã®ããã»ã¹ãé çªã«é²ããŸãããã®äœæ¥ã«è¿ãäŸãšããŠãWebã¢ããªã±ãŒã·ã§ã³ãæåããæåŸãŸã§äžç·ã«èšèšãéçºã㊠ã¿ããšããã®éçšã®äžã§Spring BootãšJPAãæŽ»çšããæ£ããæ¹æ³ãèªç¶ã«ç¿åŸã§ããŸãããããŠå®åã§ãããã®æè¡ãã©ã®ããã«æŽ»çšãã¹ãããçè§£ããŸããç¹ã«å®åã«ãããŠéèŠãªæ§èœæé©åæ¡ã段éçã«åŠãã§é©çšã§ããŸãã
å
šäœã®ã¬ãã¹ã³ã¯ãWebã¢ããªã±ãŒã·ã§ã³ãèšèšããã³éçºãã1ç·šãšAPIãéçºããããã©ãŒãã³ã¹ãæé©åãã2ç·šã§æ§æãããŠããŸããæ¬è¬çŸ©ã¯ãã®ãã¡ã®æåã®ãã®ã«è©²åœãã1ç·šã§ãã
ðšâð»åè¬åã«åèã«ããŠãã ããïŒ
2ç·šAPIéçºãšæ§èœæé©åã¯å¥éã®è¬çŸ© ã§ãäžæ®µ[é¢é£è¬çŸ©]ã«ãªã³ã¯ããããŠãããŸããã åŠç¿ã³ãŒã¹ 第1ç·š - Webã¢ããªã±ãŒã·ã§ã³éçºå®åã«è¿ã è€éãªäŸãæåããæåŸãŸã§ã³ãŒãã£ã³ã°ã§å®æïŒ
ããŒã1ã¯ãã¡ã³ããŒãååãæ³šæãã¡ã€ã³ãæã€ã·ã³ãã«ãªWebã¢ããªã±ãŒã·ã§ã³ãèšèšããã³éçºããŸãã é²è¡é ã¯æ¬¡ã®ãšããã§ãã
ãããžã§ã¯ãç°å¢èšå®ïŒ ãããžã§ã¯ããäœæããSpring BootãšJPAããã¥ãŒãã³ãã¬ãŒãã§ããã¿ã€ã ãªãŒãããã³ãã¯ããããŠããŒã¿ããŒã¹ãæ£åžžã«åäœããããã«ãããžã§ã¯ãç°å¢ãèšå®ããŸãããã¡ã€ã³åæã®èšèšïŒ èŠä»¶ãåæãããã¡ã€ã³ãšããŒãã«ãèšèšããŸãããã¡ã€ã³ãšããŒãã«ã®èšèšãå®äºããããJPAã䜿çšããŠãšã³ãã£ãã£ã¯ã©ã¹ãäœæãããšã³ãã£ãã£ã¯ã©ã¹ãšããŒãã«ããããã³ã°ããŸãããã¡ã€ã³éçºïŒ ã¡ã³ããŒãååãæ³šæãã¡ã€ã³ã®ã³ã¢ããžãã¹ããžãã¯ãéçºãããã¹ãã±ãŒã¹ãäœæããŠæ€èšŒããŸãã Webå±€ã®éçºïŒèšå® ãããã¡ã€ã³ãWebç°å¢ã§åäœããããã«ã³ã³ãããŒã©ãšãã¥ãŒãã³ãã¬ãŒãïŒã¿ã€ã ãªãŒãïŒãéçºããŸããå®éã«åäœããç»é¢ã確èªã§ããŸãã 第2ç·š - APIéçºãšããã©ãŒãã³ã¹ã®æé©å æè¿ã§ã¯ããã¥ãŒãã³ãã¬ãŒãã䜿çšããŠçŽæ¥ãµãŒããŒããHTMLãäœæããŠå¿çããã®ã§ã¯ãªããAPIã«JSONããŒã¿ãæçš¿ããŠè¿ãããšããããããŸãã Spring BootãšJPAã䜿çšããŠAPIãéçºããéã®æ³šæç¹ãšæ£ããèšèšæ¹åãçè§£ããããã©ãŒãã³ã¹ãŸã§èæ
®ããŠAPIã宿ããããšãä»åã®ç®æšã§ãã
ããŒã2ã¯ãããŒã1ã§äœæãããã¡ã€ã³ã«åºã¥ããŠå€éšã§äœ¿çšã§ããREST APIãéçºããŠããŸãããããŠã段éçã«ã«ãã¯ã¢ããçšAPIã®ããã©ãŒãã³ã¹ãæé©åããŸãããã®ããã»ã¹ã«ãããå®åäžå¿
èŠãªJPAã®ç
§äŒã¯ãšãªã®ãã¥ãŒãã³ã°ã«é¢é£ããéšåãçŽ æ©ãè§£æŸããŸãã
APIéçºã®åºæ¬ïŒ åºæ¬çã«ã¯ãç»é²ã倿Žãç
§äŒçšã®REST APIãéçºããŸãã APIéçºã®é«åºŠåïŒ å®åããJPAãšããŠç
§äŒçšAPIãéçºãããšãã¯ã泚æç¹ãšæ£ããèšèšæ¹åããç¥ããããŸãã JPAé
å»¶ããŒãã£ã³ã°ã®åé¡ã解決ããæ®µéçã«ããŸããŸãªããã©ãŒãã³ã¹æé©åæ¹æ³ã説æããŸãã å®åå¿
é ã®æé©åïŒ Spring BootãšJPAã䜿çšãããšãã«æ
éã«äœ¿çšããªããšãå®åãé害ã«ã€ãªããå¯èœæ§ããããã®ã«ã€ããŠèª¬æããŸãã åŠç¿æ¹æ³ ãã®è¬çŸ©ã¯ã»ãšãã©ç·Žç¿ ã§è¡ãããŠããŸãããã®ãããæåããæåŸãŸã§ãèªåãçŽæ¥ã³ãŒãã£ã³ã° ããªããè¬çŸ©ã«åŸããªããã°ãªããªãæãå€ãã®ãã®ãåŸãããšãã§ããŸãã
ã¡ãªã¿ã«ããã®ã¬ãã¹ã³ã§ã¯ã¹ããªã³ã°ããŒããJPAèªäœã¯è©³ãã説æããŸããã ãããã®ã¹ãã«ãããçšåºŠç¥ã£ãŠãã人ããããã®ã¹ãã«ãæå€§éã«æŽ»çšã§ããããã«ãããããå®åã§Webã¢ããªã±ãŒã·ã§ã³ãããŸãäœæããã®ã« 圹ç«ã¡ãŸãããããã£ãŠãåºæ¬çã«ã¯ãã¹ããªã³ã°ãJPAã®çè§£ãããç¶æ
ã§ãã®ã¬ãã¹ã³ãèãããšããå§ãããŸããããããSpringãJPAããŸã ããç¥ããªããŠããæåŸãŸã§åŸãããšã§ãJavaã§Webã¢ããªã±ãŒã·ã§ã³ãã©ã®ããã«éçºããŠå®æãããå
šäœçãªæèŠãæããããšãã§ããŸãã以åŸãæ¬äººãäžè¶³ããŠãããšèããåºç€æè¡ãæºãããŠããæ¹æ³ã§åŠç¿ããŠãè¯ãã§ãã
é¢é£è¬çŸ© åºæ¬ç·š 掻çšç·š æ¬åœïŒ Querydsl Querydslãä»ããŠè€éãªã¯ãšãªãšåçã¯ãšãªã®åé¡ã解決ããŸãã
åèæž æ¬ã¯ããæ·±ãå
容ãå匷ããã人ã®ããã« åèæžãšèããŠãã ããã ïŒæ¬ããªããŠãè¬çŸ©ã®ããã®å¥éè³æãæäŸãããŸããïŒ